使用 winforms、c#、vs 2008
所以我在 winforms 上有 textbox1、textbox2 和 textbox3。
Textbox3.text = textbox1.text + textbox2.text。
每当手动或编程更改 textbox1 和 textbox2 的内容时,我需要更新 textbox3。
问题是,如果我使用文本框 textchanged 事件,它会一直作为文本框中的一种类型触发。我需要一种方法来调用我的方法以在 tb1 或 tb2 以编程方式或通过键输入完成更改后填充 textbox3,而不是每次输入文本字母时都触发。
只有当 tb1 或 tb2 已完成更改时,我如何才能让 TextBox3 更新?
最佳答案
这在一定程度上取决于您所说的完成是什么意思。
最常见的选择是在焦点离开控件时运行一个事件。那是 Control.Leave事件或 Control.LostFocus .这些也是用于验证的事件 - 新值的验证(Validated
和 Validating
事件)在焦点更改时发生。
如果您正在尝试进行渐进式搜索之类的操作,您需要在控件仍处于焦点状态时做出响应,而不是响应每 键按下,那么另一种解决方案是使用计时器组件,并在每次触发 TextChanged
事件时重新启动计时器。这样,您的更新代码只会在用户更改文本并且没有输入任何其他内容(例如 1 秒)后运行。
关于c# - 测试文本框文本是否已完成文本更改时使用的最佳方法/事件是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444981/