【问题标题】:Why does TextBox Leave fire when mouse leaves?为什么鼠标离开时文本框离开火?
【发布时间】:2011-12-02 14:44:09
【问题描述】:

我认为当控件失去焦点时应该触发 Leave,而当鼠标不再在控件中时应该触发 MouseLeave。

我有一个文本框,如果我单击它,然后将鼠标移出,将触发 Leave 事件。我正在使用 Leave 来验证框中的条目,例如当人们点击标签转到下一个控件时。

这是否意味着除非鼠标留在其中,否则 TextBox 无法获得焦点?

【问题讨论】:

    标签: winforms


    【解决方案1】:

    你必须有一些其他代码设置焦点,因为当鼠标移出控件时离开不会触发。

    【讨论】:

    • 我会去检查一下...是的,还有另一个控件专注于 MouseEnter,它会导致 TextBox 离开。谢谢! 5 分钟后将接受。
    【解决方案2】:

    您不应将LeaveLostFocus 用于验证目的,而应使用专为验证场景设计的TextBox.Validating

    这样,如果你想拥有一个Cancel 按钮,你只需将其CausesValidation 属性设置为false 并且编辑器控件Validating 事件不会触发。

    【讨论】:

      【解决方案3】:

      鼠标在里面没关系。属性焦点是指另一种类型的事件,当组件准备好更改其值时,使用键盘或鼠标都没有关系。文本框失去焦点时为什么不验证文本框值?

      【讨论】:

      • 这就是我想要做的。我认为当 TextBox 失去焦点时应该触发“离开”事件。发生的事情是当鼠标离开控件时 Leave 事件也会触发。
      • 是的!这就是我试图解释的,对不起!在 Focus 事件(失去焦点事件)中输入游览验证码
      猜你喜欢
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      相关资源
      最近更新 更多