大家好!VB.net VS2010,如何捕捉任意按钮的按下事件?
我想实现的功能:当软件的任意一个按钮被按下时,所有的控件都Disable1分钟然后恢复为Enable,以避免当前工作未做完又来一个新的任务(其他任意一个按钮被按下)...
我想实现的功能:当软件的任意一个按钮被按下时,所有的控件都Disable 1分钟然后恢复为Enable,以避免当前工作未做完又来一个新的任务(其他任意一个按钮被按下)
展开
2个回答
展开全部
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each Item As Control In Controls
If TypeOf Item Is Button Then
AddHandler Item.Click, AddressOf Buts
End If
Next
End Sub
Sub Buts(ByVal sender As System.Object, ByVal e As System.EventArgs)
AllE_D(False)
Timer1.Interval = 60000
Timer1.Enabled = True
End Sub
Sub AllE_D(ByVal e_d As Boolean)
For Each Item As Control In Controls
Item.Enabled = e_d
Next
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Timer1.Enabled = False
AllE_D(True)
End Sub
For Each Item As Control In Controls
If TypeOf Item Is Button Then
AddHandler Item.Click, AddressOf Buts
End If
Next
End Sub
Sub Buts(ByVal sender As System.Object, ByVal e As System.EventArgs)
AllE_D(False)
Timer1.Interval = 60000
Timer1.Enabled = True
End Sub
Sub AllE_D(ByVal e_d As Boolean)
For Each Item As Control In Controls
Item.Enabled = e_d
Next
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Timer1.Enabled = False
AllE_D(True)
End Sub
展开全部
private buclick (.....) ...handles b1.click, b2.click, b3.click
再拉一个timer控件,时间设为6000,在buclick下写
timer1.enable=true
b1.enable=f
b2.enable=f
........
timer.tick下写
timer1.enable=f
b1.enable=t
b2.enable=t
........
再拉一个timer控件,时间设为6000,在buclick下写
timer1.enable=true
b1.enable=f
b2.enable=f
........
timer.tick下写
timer1.enable=f
b1.enable=t
b2.enable=t
........
追问
谢谢你!
可是我的窗体里按钮太多,几十个,名字可能也不规则,我不想一个一个在触发条件里添加,有没有更好的办法?
追答
上面写了呀,就是写一个sub然后后面handles所有button的click就好了,然后sub里写一边所有的button的enable=f/t就行了,要真的不想这么写就要写遍历me.control集合里button然后声明click事件……略烦,代码今晚就写不出来了……嗯,就是这样。代码我明天试着写写。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询