0

みんな:

フォームのテキスト ボックスのデータを検証しようとしています。これはバリデーター用のコードですが、コードに設定されている制約に明らかに違反すると機能しません (txtbox からタブで移動する、4 文字未満を入力するなど)。プログラムが実行されるため、構文ではないため、論理エラーに違いないと思いますが、表示されません。

            // Validation for Applicant Name text box
    private void txtAppInfoName_Validating(object sender, CancelEventArgs e)
        {

            // Define what consitiutes a match
            Match m = Regex.Match(txtAppInfoName.Text, @"\b[A-Za-z]\b");

            if (m.Success == false)
            {
                errorProvider1.SetError(txtAppInfoName, "Please use only letters to type your name.");
                txtAppInfoName.Select();
            }

            else if (txtAppInfoName.Text.Length < 4)
            {
                errorProvider1.SetError(txtAppInfoName, "Please type first and last names.");
                txtAppInfoName.Select();
            }

            else if (txtAppInfoName.Text == "")
            {
                errorProvider1.SetError(txtAppInfoName, "Must enter a name.");
                txtAppInfoName.Select();
            }
            else errorProvider1.SetError(txtAppInfoName, ""); // Remove the error provider
        }
4

1 に答える 1

0

ほとんどの場合、ハンドラーはまったく呼び出されません。イベントtxtAppInfoName_Validatingの下の GUI デザイナーでハンドラーが指定されていることを確認します。Validating

それでもうまくいかない場合は、ブレークポイントを追加するか、ハンドラーで例外をスローして、何が起こるかを確認してください。
停止した場合は、コール スタックを使用してエラー ソースを調べることができます。

于 2013-05-09T02:36:50.957 に答える