2

有谁知道如何在 VB.NET 中处理鼠标单击并按住事件?

假设我想单击并按住一个按钮并在代码后面执行一些操作,例如更改按钮 BackColor 或更快地关闭窗口(就像您单击 ms office 2013 文件菜单然后使用左箭头关闭该菜单一样)。

希望你明白我的意思

谢谢

4

2 回答 2

3

您可以创建一个全局定义的计时器,该计时器在调用 MouseDown 时开始,然后在 Mouse Up 时结束。然后,您可以设置一个条件,即在您认为它是“长按”之前需要经过多少毫秒。请参见下面的示例代码:

Public Class Form1
Dim WithEvents timer As New Timer
Dim milliseconds As Integer


Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles MyBase.MouseDown
    timer.Start()
End Sub

Private Sub Form1_MouseUp(sender As Object, e As MouseEventArgs) Handles MyBase.MouseUp
    timer.Stop()
    Label1.Text = "Button held down for: " & milliseconds & " milliseconds"
    If milliseconds >= 10 then 'Mouse has been down for one second
      DoSomething()
    End If
End Sub

Private Sub EggTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer.Tick
    milliseconds += 1
End Sub


End Class
于 2013-10-09T22:03:20.493 回答
1

MouseDown 是您正在寻找的

于 2013-10-09T22:01:52.123 回答