[ErrorProvider][Tips] 指定したコントロールにエラーメッセージを表示する


ErrorProviderコンポーネントでは、SetErrorメソッドを使用して指定したコントロールの脇にエラーエラーメッセージを表示させることができます。

たとえば、テキストボックスの脇にエラーメッセージを表示するには下記のようにします

VBの例

ErrorProvider1.SetError(TextBox1, "エラーメッセージ")

C#の例

errorProvider1.SetError(textBox1, "エラーメッセージ");

多くのコントロールはValidatingイベントという、コントロールの内容検証時に発生するイベントを持っています。

ErroProviderのSetErrorメソッドは、このValidatingメソッドと組み合わせて使用するとよいでしょう。

たとえば、年齢(整数値)を入力させたいテキストボックスがあるとします。

もしも、テキストボックスで整数値以外の文字が入力されたら、SetErrorメソッドでエラーメッセージを表示し、正しく入力された場合はエラーメッセージをクリアする、といったように使用します。

このとき、TextBoxが持つValidatingイベントのe.CancelにTrueを設定するとイベントをキャンセルすることができ、正しい値が入力されるまでの間はほかのコントロールにフォーカスを与えないようにすることができます。

下記は、指定したコントロールにエラーメッセージを表示する例です。

「年齢」欄にあるテキストボックスに整数値以外の文字が入力された場合はエラーメッセージを表示し、他のコントロールにフォーカスを与えないようにします。

VBの例

' テキストボックスの内容検証処理
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 txtAge_Validating(object sender, CancelEventArgs e)
{
    try
    {
        // 入力値を数値に変換する
        int iAge = int.Parse(txtAge.Text);

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

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.