我认为当控件失去焦点时,Leave应该会触发,当鼠标不再出现在控件中时,MouseLeave应该会触发。
我有一个TextBox,如果我点击它,然后将鼠标移开,Leave事件就会触发。我正在使用Leave来验证框中的条目,例如当人们按Tab键转到下一个控件时。
这是否意味着TextBox无法拥有焦点,除非鼠标保留在其中?
答案 0 :(得分:2)
您必须设置一些其他代码设置焦点,因为当鼠标离开控件时,Leave不会触发。
答案 1 :(得分:2)
您不应该使用Leave
或LostFocus
进行验证,而应使用专为验证方案设计的TextBox.Validating
。
这样,如果您想要一个Cancel
按钮,则可以将其CausesValidation
属性设置为false,并且不会触发编辑器控件Validating
事件。
答案 2 :(得分:0)
鼠标是否在其中并不重要。 Property Focus是指另一种类型的事件,当组件准备好更改其值时,如果使用键盘或鼠标则无关紧要。为什么不在Textbox失去焦点时验证TextBox值?