2

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

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

2 回答 2

1

您可以通过这样做来阻止对验证事件的调用

txt8Ydere1.Validating-=txt8Ydere1_Validating;

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

检查txtbox.Text equals "asdf",如果是这样,您可以直接调用 Validating 方法而无需重新订阅事件

txt8Ydere1_Validating(sender,null);
于 2012-04-05T12:56:09.297 回答
0

我会为文本框使用 LostFocus 事件。您可以从该事件运行验证。

有关更多信息,请参阅msdn

于 2012-04-06T16:34:57.760 回答