什么是测试文本框文本是否已完成文本更改时使用的最佳方式/事件

Spo*_*010 2 c# events textbox winforms

使用winforms,c#,vs 2008

所以我在winforms上有textbox1,textbox2和textbox3.

Textbox3.text = textbox1.text + textbox2.text.

每当textbox1和textbox2的内容已手动或程序化更改时,我都需要更新textbox3.

问题是如果我使用textbox textchanged事件,它会在文本框中作为一种类型继续触发.我需要一种方法来调用我的方法来填充textbox3,在tb1或tb2已完成程序化或通过键输入完成后,并且每次输入文本字母时都不会触发.

只有在tb1或tb2 完成更改后才能更新TextBox3 ?

Aar*_*ght 7

这取决于你的意思是什么一点点完成.

最常见的选择是在焦点离开控件时运行事件.这是Control.Leave事件或Control.LostFocus.这些也是用于验证的事件 - 当焦点发生变化时,会对新值(ValidatedValidating事件)进行验证.

如果您正在尝试执行渐进式搜索等操作,您需要在控件仍然处于焦点但不响应每次按键的情况下进行响应,那么另一种解决方案是使用Timer组件,并在每次重启时重新启动计时器TextChanged事件被解雇了.这样,您的更新代码将仅在用户更改文本后运行,并且没有输入任何其他内容,例如1秒.