[Tips] Validatingイベントを使用する その1 では基本的な使い方について説明しました。
今回は、Validatingイベントと ErrorProviderコントロールを組み合わせて、不正な文字が入力さている場合にエラーアイコンを表示する方法について説明します。
デザインは以下のようにします。
前回のデザインに ErrroProviderコントロールを追加しただけです。
不正な文字の入力チェックは、前回同様 Validatingイベントで行います。
不正な文字が入力されていた場合は、errorProviderコントロールの SetErrorメソッドを呼び出すコードを追加します。
そして、入力チェックにおいて不正な文字が見つからなかった場合(要するに Validatingイベントで e.Cancel = trueにしなかった場合)は、エラーが発生していないことになるので ErrorProviderコントロールの SetErrorメソッドでエラー状態をクリアしてあげます。
以下にコード例を示します。
VBの例
Private Sub txtData1_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles txtData1.Validating ' 不正な文字「.」が含まれているか? If txtData1.Text.IndexOf(".") > -1 Then MessageBox.Show("不正な文字「.」が含まれています") ' 後続のイベントをキャンセル e.Cancel = True 'txtData1 にエラーアイコンとメッセージの表示をセット errorProvider1.SetError(txtData1, "不正な文字が入力されています。") End If End Sub Private Sub txtData1_Validated(sender As Object, e As EventArgs) Handles txtData1.Validated 'txtData1のエラーを解除 errorProvider1.SetError(txtData1, "") End Sub
C#の例
private void textBox1_Validating(object sender, CancelEventArgs e) { // 不正な文字「.」が含まれているか? if (txtData1.Text.IndexOf('.') > -1 && this.ActiveControl != txtData1) { MessageBox.Show("不正な文字「.」が含まれています"); // 後続のイベントをキャンセル e.Cancel = true; // txtData1 にエラーアイコンとメッセージの表示をセット errorProvider1.SetError(txtData1, "不正な文字が入力されています。"); } } private void txtData1_Validated(object sender, EventArgs e) { // txtData1のエラーを解除 errorProvider1.SetError(txtData1, ""); }
Please follow and like us:
コメント