【问题标题】:Textbox lostfocus event doesn't fire when using a default button使用默认按钮时不会触发文本框 lostfocus 事件
【发布时间】:2017-01-25 09:54:59
【问题描述】:

今天我偶然发现了一个来自TextBoxLostFocus 事件没有触发的问题。大多数客户没有任何问题,但其中一小部分报告了意外行为。经过一番研究,我发现没有问题的客户用鼠标点击“确定”按钮,而其他客户在键盘上按下Enter。 “确定”按钮是表单上的默认按钮,因此按下 Enter 应该可以正常工作。问题是按下Enter 不会在具有焦点的TextBox 上触发LostFocus 事件。

经过一番谷歌搜索后,很明显这是默认按钮的预期行为。焦点永远不会丢失 TextBox 并且 CommandButton Click 事件背后的代码正在运行而不被单击。

如何在使用默认按钮时触发LostFocus 事件?

【问题讨论】:

    标签: textbox vb6 lostfocus defaultbutton


    【解决方案1】:

    对我有用的一个简单技巧是在触发Click 事件时将焦点设置为“确定”按钮。这样,当前控件会自动运行其LostFocus 事件。设置焦点后别忘了多加一个DoEvents。否则,LostFocus 事件会在您的其他代码执行后触发。

    Private Sub cmdOk_Click()
        cmdOK.SetFocus
        DoEvents
        'Run your other code
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 2020-02-20
      • 1970-01-01
      相关资源
      最近更新 更多