vb按钮多次连击问题
我用vb编写一个程序,需要读取较复杂数据,运行时间较长,因此在运行期间需要保持执行的按钮处在不可用状态,以免重复运算。我将按钮的Enabled属性设置成false了,运行...
我用vb编写一个程序,需要读取较复杂数据,运行时间较长,因此在运行期间需要保持执行的按钮处在不可用状态,以免重复运算。我将按钮的Enabled属性设置成false了,运行时虽然按钮被显示成灰色字体,但是如果在运行期间单击按钮,按钮程序仍然会再次被执行,甚至将按钮设置成运行期间不可见,visibal设置成false,在原先按钮的位置单击,依然会重复运行。
我在按钮里加上判定语句,判定Enabled、visibal为false时不执行按钮命令,可依然重复运行。我通过caption改动命令按钮上的文字,再判定,也还是重复。
后来,我发现是在运行期间单击按钮,并没有立刻执行,而是在运行后,恢复了Enabled、visibal为true,此时执行了在为false期间的单击动作,这个问题该怎么解决。
在线等,求大神帮忙 展开
我在按钮里加上判定语句,判定Enabled、visibal为false时不执行按钮命令,可依然重复运行。我通过caption改动命令按钮上的文字,再判定,也还是重复。
后来,我发现是在运行期间单击按钮,并没有立刻执行,而是在运行后,恢复了Enabled、visibal为true,此时执行了在为false期间的单击动作,这个问题该怎么解决。
在线等,求大神帮忙 展开
推荐于2016-02-16 · 知道合伙人软件行家
yfcp
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:1748
获赞数:5545
有多年网站建设相关工作经验。熟悉ASP、ASP.net、VB、JavaScript、HTML等语言和CSS、Ajax等相关技术。
向TA提问 私信TA
关注
展开全部
你好,正常情况下,按钮的Enabled属性设置成false,就不会再被点击了。你可以单独建一个窗体,自己测试一下。
1、你把Enabled=false放到点击按钮最前面,一点击先触发Enabled。不要放到代码最后面。
2、如果不是上面的问题,应该就是你的程序其他代码问题,这个需要看具体代码和情况。
测试代码:新建一个窗体,加个command1按钮。下面代码command1点击后延迟5秒弹出,也就是模拟长时间运行代码。
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Command1_Click()
Command1.Caption = "点击按钮-5秒后可用"
Command1.Enabled = False
Dim iTick As Long
iTick = GetTickCount
While GetTickCount - iTick < 5000
DoEvents
Wend
MsgBox "过5秒了,弹出窗口"
Command1.Enabled = True
End Sub
追问
我的代码结构差不多,先设置enabled的false,在最后改为true
不过,我发现是在运行期间单击按钮(按钮还是false状态),并没有立刻执行,而是在运行后,恢复了Enabled、visibal为true,此时执行了在为false期间的单击动作。我很不解。我的代码在这期间执行了对电子表格的操作,因此时间很长,而且不希望重复执行。
追答
按钮Enabled=false后会马上失去点击事件的。这个应该检查一下你的其他代码了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询