jam*_*lle 31 windows events user-interface winforms
这可能是一个基本问题,但我必须承认,我从未真正理解Control.Enter和Control.GotFocus事件之间的区别.
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.enter.aspx http://msdn.microsoft.com/en-us/library/system.windows.forms.control .gotfocus.aspx
它是捕获键盘或鼠标输入或其他东西之间的区别?
Han*_*ant 24
GotFocus/LostFocus事件分别由Windows消息,WM_SETFOCUS和WM_KILLFOCUS生成.它们有点麻烦,尤其是容易出现死锁的WM_KILLFOCUS.Windows窗体中处理验证逻辑的逻辑(例如,验证事件)可以覆盖焦点更改.换句话说,焦点实际上已经改变,但随后验证代码将其移回.您的UI的逻辑状态是它永远不会移动,您不应该意识到它确实如此.
Enter/Leave事件避免了这些低级焦点更改通知事件可能导致的问题,它们是在Winforms建立真正焦点时生成的.你几乎总是想要使用它们.
小智 6
Control.Enter事件在控件首次获得焦点时发生。虽然Control.GotFocus每次都获得控件焦点。例如,您拥有已经具有焦点的“ textBox1”并调用textBox1.Focus(),在这种情况下,GotFocus事件将始终触发,而Enter事件仅在控件尚未具有焦点时才触发并第一次收到它。
| 归档时间: |
|
| 查看次数: |
4944 次 |
| 最近记录: |