方法: Windows フォーム ErrorProvider コンポーネントを使用してフォーム妥当性検査でエラー アイコンを表示する
Windows フォーム ErrorProvider コンポーネントを使用すると、ユーザーが無効なデータを入力した場合にエラー アイコンを表示することができます。 2 つのコントロールの間でタブ移動を行い、それによって検証コードを呼び出すには、フォーム上に 2 つ以上のコントロールが必要です。
コントロールの値が無効な場合にエラー アイコンを表示するには
2 つのコントロール (テキスト ボックスなど) を Windows フォームに追加します。
フォームに ErrorProvider コンポーネントを追加します。
1 つ目のコントロールを選択し、その 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);
プロジェクトを実行します。 1 つ目のコントロールに無効なデータ (この例では数値以外) を入力して、2 つ目にタブ移動します。 エラー アイコンが表示されたら、マウス ポインターでそれをポイントし、エラー テキストを確認します。
関連項目
.NET Desktop feedback