如何处理Windows窗体中文本框的完整更改?

Pet*_*r17 3 .net c# textbox winforms

我应该处理什么事件来对TextBox的完成更改作出反应(即当用户完成编辑TextBox的内容时)?

Pon*_*dum 7

您可以使用以下几种方法:Leave事件或手动"键入已停止"事件.

这种Leave方法是最直接的方法,尽管正如事件名称所暗示的那样,它只会在TextBox失去焦点时发生,而不是在用户停止输入时发生.

TypingStopped事件是你自己需要创建的事件,但它的基本思想是一个持续时间很短的计时器(比如500ms,但你需要测试它),你会在每个KeyDown事件中重新启动它TextBox.计时器将触发自己的事件并在其超时结束时自行禁用.

编辑:Leave根据Hans的建议更新到活动.

  • 永远不要使用LostFocus,这是一个危险的事件.有关WM_KILLFOCUS的MSDN文章,请查看原因.使用Leave事件.或在需要验证时进行验证. (2认同)