我不想使用mouseup事件,因为我想允许用户在控件外拖动。我需要通过计时器检查状态。我依旧记得在某些时候使用
这样做If MouseButtons = MouseButtons.Left Then...
但现在它说MouseButtons是一个类型,不能用作表达式(这是真的,它是枚举类型)。
也许他们改变了一些事情,或者我只记得错了。无论如何,我怎么检查按钮是否仍然按下?
答案 0 :(得分:0)
您想要的是测试Mouse.LeftButton属性。
答案 1 :(得分:0)
经过试用和测试。我创建了一个新类:testmouseclass并创建了一个共享函数,您可以随时使用该函数来确定LeftMouseButton
是否已关闭。这可以通过GetAsyncKeyState
调用来实现。
Imports System.Runtime.InteropServices 'Need to import...
Public Class testmouseclass
<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> Public Shared Function GetAsyncKeyState(ByVal vkey As Long) As Long
End Function
Public Shared Function LeftMouseIsDown() As Boolean
Return GetAsyncKeyState(Keys.LButton) > 0 And &H8000
End Function
End Class
使用示例
Private Sub Timer1_Tick(sender As Object, e As System.EventArgs) Handles Timer1.Tick
If testmouseclass.LeftMouseIsDown() Then MsgBox("It IS!")
End Sub
根据计时器的确定,这也很令人头痛。不确定你是如何使用它的,但在我的例子中,我有3秒钟的计时器,当我按住LeftMouseButton
时弹出一条消息,当我再次点击它时,由于计时器和左鼠掉了。此外,这项工作甚至超出了您的申请范围......
答案 2 :(得分:0)
If System.Windows.Input.Mouse.LeftButton = Windows.Input.MouseButtonState.Pressed Then