[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:


コメント