方法: Windows フォーム ErrorProvider コンポーネントを使用してフォーム検証のエラー アイコンを表示する
Windows フォーム ErrorProvider コンポーネントを使用すると、ユーザーが無効なデータを入力したときにエラー アイコンを表示できます。 フォームの間にタブを移動して検証コードを呼び出すには、フォームに少なくとも 2 つのコントロールが必要です。
コントロールの値が無効な場合にエラー アイコンを表示するには
Windows フォームに 2 つのコントロール (テキスト ボックスなど) を追加します。
ErrorProvider コンポーネントをフォームに追加します。
最初のコントロールを選択し、その Validating イベント ハンドラーにコードを追加します。 このコードを正しく実行するには、プロシージャをイベントに接続する必要があります。 詳細については、「方法: Windows フォームの実行時にイベント ハンドラーを作成する」を参照してください。
次のコードは、ユーザーが入力したデータの有効性をテストします。データが無効な場合は、SetError メソッドが呼び出されます。 SetError メソッドの最初の引数は、アイコンの横に表示するコントロールを指定します。 2 番目の引数は、表示するエラー テキストです。
Private Sub TextBox1_Validating(ByVal Sender As Object, _ ByVal e As System.ComponentModel.CancelEventArgs) Handles _ TextBox1.Validating If Not IsNumeric(TextBox1.Text) Then ErrorProvider1.SetError(TextBox1, "Not a numeric value.") Else ' Clear the error. ErrorProvider1.SetError(TextBox1, "") End If End Sub
protected void textBox1_Validating (object sender, System.ComponentModel.CancelEventArgs e) { try { int x = Int32.Parse(textBox1.Text); errorProvider1.SetError(textBox1, ""); } catch (Exception ex) { errorProvider1.SetError(textBox1, "Not an integer value."); } }
private: System::Void textBox1_Validating(System::Object ^ sender, System::ComponentModel::CancelEventArgs ^ e) { try { int x = Int32::Parse(textBox1->Text); errorProvider1->SetError(textBox1, ""); } catch (System::Exception ^ ex) { errorProvider1->SetError(textBox1, "Not an integer value."); } }
(Visual C#、Visual C++)フォームのコンストラクターに次のコードを配置して、イベント ハンドラーを登録します。
this.textBox1.Validating += new System.ComponentModel.CancelEventHandler(this.textBox1_Validating);
this->textBox1->Validating += gcnew System::ComponentModel::CancelEventHandler (this, &Form1::textBox1_Validating);
プロジェクトを実行します。 最初のコントロールに無効な (この例では数値以外の) データを入力し、次に 2 番目のコントロールにタブを入力します。 エラー アイコンが表示されたら、マウス ポインターをポイントしてエラー テキストを表示します。
参照
- SetError
- ErrorProvider コンポーネントの概要
- 方法: Windows フォーム ErrorProvider コンポーネント を使用して DataSet 内のエラーを表示する
.NET Desktop feedback