【发布时间】:2016-06-05 04:28:36
【问题描述】:
好的,所以我知道如何检查用户是否点击了特定对象,但是我真的不在乎用户点击的位置,我只需要知道他们是否点击了(无论是在实际表单上还是在一个物体或任何东西上)。我的代码是这样的:
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If GetAsyncKeyState(1) Then
Label1.Text = "Left"
Else
Label1.Text = "Right"
End If
End Sub
当我运行代码时,我得到一个错误:
检测到 PInvokeStackImbalance
“对 PInvoke 函数 'Mouse click!Mouse_click.Form1::GetAsyncKeyState' 的调用导致堆栈不平衡。这可能是因为托管 PInvoke 签名与非托管目标签名不匹配。请检查调用约定和参数PInvoke 签名匹配目标非托管签名。"
我对 vb.net 很陌生,所以文档真的对我没有帮助。 任何帮助都会很棒:)
【问题讨论】:
-
告诉我们你真正想要什么,你试图做的完全是反对事件驱动的编程,这是非常错误的。即使您获得正确的 GetAsyncKeyState 签名,这也不是要走的路……如果您想知道用户是否单击某处,请处理鼠标单击事件; msdn.microsoft.com/en-us/library/…
标签: vb.net