如何在VB6中延迟LostFocus事件
我遇到一个涉及如何在VB6中延迟LostFocus事件,vb6,Vb6,我遇到一个涉及LostFocus事件的流程问题 当光标从特定文本框中失去焦点时,我只是将焦点放回该框中 我的问题是删除焦点的时间足够长,用户可以单击注销按钮。有没有办法拦截LostFocus事件足够长的时间,以允许用户单击注销按钮?使用计时器和表单边界之外的另一个控件的组合,您可以实现这一点 Private Sub Text1_LostFocus() Combo1.SetFocus ReturnFocusTimer.Enabled = True End Sub Private
LostFocus
事件的流程问题
当光标从特定文本框中失去焦点时,我只是将焦点放回该框中
我的问题是删除焦点的时间足够长,用户可以单击注销按钮。有没有办法拦截
LostFocus
事件足够长的时间,以允许用户单击注销按钮?使用计时器和表单边界之外的另一个控件的组合,您可以实现这一点
Private Sub Text1_LostFocus()
Combo1.SetFocus
ReturnFocusTimer.Enabled = True
End Sub
Private Sub ReturnFocusTimer_Timer()
ReturnFocusTimer.Enabled = False
Text1.SetFocus
End Sub
在本例中,Combo1
位于表单底部之外。您可以控制ReturnFocusTimer
的时间间隔,以满足您的需要。显然,我不知道这里的重点。但是,按照你所说的,下面的方法就行了。实际上,事件会短暂延迟,允许单击按钮:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Text1_LostFocus()
Sleep 100
DoEvents
Text1.SetFocus
End Sub
谢谢你,先生!我很高兴你能来帮忙!!再次感谢你,布莱恩!六羟甲基三聚氰胺六甲醚。。布莱恩,我得到了子函数或未定义的函数。是否有我缺少的引用?不要忘记在表单或模块中添加Private Declare
sub。如果在模块中,请确保它是公共的。Brian,我在那里添加了整个块,只是更改了我的文本框名称,但我现在遇到了以下错误:只有注释可能出现在End Sub、End Function或End Property之后
。我在这里做错了什么吗?确保Private Declare
子文件位于文件的最顶端,就在选项Explicit
之后。