私は、独自のバリで昨日カスタムテキストボックスを作っ:テキストボックスの検証の原因は何ですか?
public partial class CustomTextBox : TextBox
{
ErrorProvider errorProvider;
public CustomTextBox()
{
InitializeComponent();
errorProvider = new ErrorProvider();
errorProvider.DataSource = this;
}
protected override void OnValidating(CancelEventArgs e)
{
base.OnValidating(e);
if (this.Text.Trim() == "")
{
errorProvider.SetError(this, "Required field");
e.Cancel = true;
return;
}
errorProvider.SetError(this, "");
}
}
だから私はキャンセルボタンをフォーム上でこれを入れて、キャンセルボタンをfalseにcausesValidationを設定します。また、フォームのcauseValidationをfalseに設定します。何らかの理由で私がキャンセルをクリックすると、私のcustomtextboxはまだonValidatingイベントを発生させています。何が原因なのか?フォーム上のすべてのコントロールを検証しようとする送信ボタンをクリックするまで、テキストボックスを検証する必要はありません。このようにして、ユーザーは他のユーザーに移動する前に、コントロールにデータを入力する必要がありません。合理的な音ですか?これはwinformsのUIで私の最初の亀裂です。