首页 > 解决方案 > 检测按钮是否被按住

问题描述

我在winform中有一个按钮,如果我按下它,我会调用

Sub DoSomtheing();

我希望程序继续调用该子直到按钮被释放。我尝试了 click 事件和MouseDown,但他们只触发了一次。

最好的方法是什么?

标签: .netvb.netbutton

解决方案


使用计时器是我认为最好的方法:ss

Sub DoSomething()
    i = i + 1
    Label1.Text = Str(i)
End Sub

然后在一个定时器中,我们可以调用这个方法:

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    DoSomething()
End Sub

我们可以使用此按钮鼠标向上和鼠标向下功能启用或禁用计时器:

Private Sub Button1_MouseUp(sender As Object, e As MouseEventArgs) Handles Button1.MouseUp
    Timer1.Stop()
End Sub
Private Sub Button1_MouseDown(sender As Object, e As MouseEventArgs) Handles Button1.MouseDown
    Timer1.Start()
End Sub

您可以更改计时器间隔以更改速度。


推荐阅读