[ErrorProvider][Tips] いつエラーアイコンが点滅するかを設定する


ErroProviderのエラーアイコンは、BlinkStyleプロパティを使用して、点滅するタイミングを設定することができます。

BlinkStyleプロパティには、ErrorBlinkStyle列挙体の値を設定します。

メンバ名 説明
AlwaysBlink エラー アイコンが最初に表示されたとき、またはエラーを説明する文字列がコントロールに対して設定されている状態でエラー アイコンが既に表示されている場合は、常に点滅します。
BlinkIfDifferentError アイコンが既に表示されていて、新しいエラー文字列がコントロールに対して設定されると、点滅します。
NeverBlink エラー アイコンは点滅しません。

下記は、いつエラーアイコンが点滅するかを設定する例です。

フォームロード時にAlwaysBlinkを設定して、常に点滅するようにしています。

VBの例

' フォームロード時の処理
Private Sub Form6_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    '★★★常に点滅させる★★★
    ErrorProvider1.BlinkStyle = ErrorBlinkStyle.AlwaysBlink
End Sub

' テキストボックスの内容検証処理
Private Sub txtAge_Validating(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles txtAge.Validating
    Try
        '入力値を数値に変換する
        Dim iNum As Integer = Integer.Parse(txtAge.Text)

        '正常に整数に変換できた場合はエラーをクリアする
        ErrorProvider1.SetError(txtAge, "")
    Catch ex As Exception
        'イベントをキャンセルする
        e.Cancel = True

        '例外が発生したのでエラーを表示する
        ErrorProvider1.SetError(txtAge, "整数値以外の文字が入力されました!!")
    End Try
End Sub

C#の例

// フォームロード時の処理
private void Form6_Load(object sender, EventArgs e)
{
    // ★★★常に点滅させる★★★
    errorProvider1.BlinkStyle = ErrorBlinkStyle.AlwaysBlink;
}

// テキストボックスの内容検証処理
private void txtAge_Validating(object sender, CancelEventArgs e)
{
    try
    {
        // 入力値を数値に変換する
        int iAge = int.Parse(txtAge.Text);

        // 正常に整数に変換できた場合はエラーをクリアする
        errorProvider1.SetError(txtAge, "");
    }
    catch (Exception)
    {
        e.Cancel = true;

        // ★★★例外が発生したのでエラーを表示する★★★
        errorProvider1.SetError(txtAge, "整数値以外の文字が入力されました!!");
    }
}

[ErrorProvider][Tips] アイコンの点滅速度を調整する


アイコンの点滅速度を調整するにはBlinkRateプロパティ(単位mSec)を使用します(既定値は250mSec)。

下記は、アイコンの点滅速度を調整する例です。

フォームロード時に、点滅速度を500mSecに設定しています。

VBの例

' フォームロード時の処理
Private Sub Form5_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    '★★★点滅速度を0.5秒間隔にする★★★
    ErrorProvider1.BlinkRate = 500
End Sub

' テキストボックスの内容検証処理
Private Sub txtAge_Validating(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles txtAge.Validating
    Try
        '入力値を数値に変換する
        Dim iNum As Integer = Integer.Parse(txtAge.Text)

        '正常に整数に変換できた場合はエラーをクリアする
        ErrorProvider1.SetError(txtAge, "")
    Catch ex As Exception
        'イベントをキャンセルする
        e.Cancel = True

        '例外が発生したのでエラーを表示する
        ErrorProvider1.SetError(txtAge, "整数値以外の文字が入力されました!!")
    End Try
End Sub

C#の例

// フォームロード時の処理
private void Form5_Load(object sender, EventArgs e)
{
    // ★★★点滅速度を0.5秒間隔にする★★★
    errorProvider1.BlinkRate = 500;
}

// テキストボックスの内容検証処理
private void txtAge_Validating(object sender, CancelEventArgs e)
{
    try
    {
        // 入力値を数値に変換する
        int iAge = int.Parse(txtAge.Text);

        // 正常に整数に変換できた場合はエラーをクリアする
        errorProvider1.SetError(txtAge, "");
    }
    catch (Exception)
    {
        e.Cancel = true;

        // ★★★例外が発生したのでエラーを表示する★★★
        errorProvider1.SetError(txtAge, "整数値以外の文字が入力されました!!");
    }
}

[ErrorProvider][Tips] アイコンの表示位置を設定する


SetIconAlignmentメソッドを使用すると、表示されるアイコンをコントロールのどの位置に表示するのか(既定ではコントロールの右側)を設定することができます。

下記は、アイコンの表示位置を変更する例です。

エラーアイコンを、コントロールの左側に表示するよう設定しています。

VBの例

' フォームロード時の処理
Private Sub Form4_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    'アイコンをコントロールの左側中央に表示する
    ErrorProvider1.SetIconAlignment(txtAge, ErrorIconAlignment.MiddleLeft)
End Sub

' テキストボックスの内容検証処理
Private Sub txtAge_Validating(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles txtAge.Validating
    Try
        '入力値を数値に変換する
        Dim iNum As Integer = Integer.Parse(txtAge.Text)

        '正常に整数に変換できた場合はエラーをクリアする
        ErrorProvider1.SetError(txtAge, "")
    Catch ex As Exception
        'イベントをキャンセルする
        e.Cancel = True

        '例外が発生したのでエラーを表示する
        ErrorProvider1.SetError(txtAge, "整数値以外の文字が入力されました!!")
    End Try
End Sub

C#の例

// フォームロード時の処理
private void Form4_Load(object sender, EventArgs e)
{
    // ★★★アイコンをコントロールの左側中央に表示する★★★
    errorProvider1.SetIconAlignment(txtAge, ErrorIconAlignment.MiddleLeft);
}

// テキストボックスの内容検証処理
private void txtAge_Validating(object sender, CancelEventArgs e)
{
    try
    {
        // 入力値を数値に変換する
        int iAge = int.Parse(txtAge.Text);

        // 正常に整数に変換できた場合はエラーをクリアする
        errorProvider1.SetError(txtAge, "");
    }
    catch (Exception)
    {
        e.Cancel = true;

        // ★★★例外が発生したのでエラーを表示する★★★
        errorProvider1.SetError(txtAge, "整数値以外の文字が入力されました!!");
    }
}