在textchanged上验证文本框但不在keypress上验证

时间:2012-04-05 10:06:01

标签: .net winforms validating

我正在使用Textbox_Validating事件来验证我的某个窗口表单上的文本框。 如果texbox的文本发生变化,我想验证文本框。所以我从textbox_Texchanged事件中调用了验证事件。但是,只要我按下一个键,它就会触发textchanged事件,从而触发text_Validating事件。 如果text属性由于按键而发生了变化,我想阻止对Text_Validating的调用。但是,如果有人协助txtbox.Text="asdf";,我想在这种情况下触发验证事件。

private void txt8Ydere1_TextChanged(object sender, EventArgs e)
    {
        txt8Ydere1_Validating(sender,null);
    }

2 个答案:

答案 0 :(得分:1)

您可以通过执行此操作来阻止对验证事件的调用

txt8Ydere1.Validating-=txt8Ydere1_Validating;

将此代码放在 keydown,keyUp 事件......

检查txtbox.Text equals "asdf"如果是,您可以直接调用验证方法,而无需重新订阅活动

txt8Ydere1_Validating(sender,null);

答案 1 :(得分:0)

我会将LostFocus事件用于文本框。您可以从该事件中运行验证。

有关详细信息,请参阅msdn