使用默认按钮时,文本框lostfocus事件不会触发

时间:2017-01-25 09:54:59

标签: textbox vb6 lostfocus defaultbutton

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

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

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

1 个答案:

答案 0 :(得分:1)

一个对我有用的简单黑客是每当发出LostFocus事件时将焦点设置为“Ok”按钮。这样,当前控件自动运行其Click事件。设置焦点后,不要忘记多放LostFocus。否则,DoEvents事件将在您的其他代码执行后触发。

LostFocus