【发布时间】:2011-12-02 14:44:09
【问题描述】:
我认为当控件失去焦点时应该触发 Leave,而当鼠标不再在控件中时应该触发 MouseLeave。
我有一个文本框,如果我单击它,然后将鼠标移出,将触发 Leave 事件。我正在使用 Leave 来验证框中的条目,例如当人们点击标签转到下一个控件时。
这是否意味着除非鼠标留在其中,否则 TextBox 无法获得焦点?
【问题讨论】:
标签: winforms
我认为当控件失去焦点时应该触发 Leave,而当鼠标不再在控件中时应该触发 MouseLeave。
我有一个文本框,如果我单击它,然后将鼠标移出,将触发 Leave 事件。我正在使用 Leave 来验证框中的条目,例如当人们点击标签转到下一个控件时。
这是否意味着除非鼠标留在其中,否则 TextBox 无法获得焦点?
【问题讨论】:
标签: winforms
你必须有一些其他代码设置焦点,因为当鼠标移出控件时离开不会触发。
【讨论】:
您不应将Leave 或LostFocus 用于验证目的,而应使用专为验证场景设计的TextBox.Validating。
这样,如果你想拥有一个Cancel 按钮,你只需将其CausesValidation 属性设置为false 并且编辑器控件Validating 事件不会触发。
【讨论】:
鼠标在里面没关系。属性焦点是指另一种类型的事件,当组件准备好更改其值时,使用键盘或鼠标都没有关系。文本框失去焦点时为什么不验证文本框值?
【讨论】: