我的问题是我需要在 MouseMove 事件中更改鼠标指针的位置,这会导致无限递归。我需要抑制Me.Cursor.Position = newpos
生成的 MouseMove 事件。我怎样才能做到这一点?
我读过,Me.EnableEvents = False
但这对 Visual Studio 2005 无效,我找不到等效的。
我的问题是我需要在 MouseMove 事件中更改鼠标指针的位置,这会导致无限递归。我需要抑制Me.Cursor.Position = newpos
生成的 MouseMove 事件。我怎样才能做到这一点?
我读过,Me.EnableEvents = False
但这对 Visual Studio 2005 无效,我找不到等效的。
你到底想做什么?也许有更好的方法。但是假设这是您想要的,您可以在MouseMove
使用更改光标位置之前取消订阅事件中的事件处理程序RemoveHandler
。完成后将其添加回来:
Public Class MyForm
Private Sub MyForm_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles Me.MouseMove
UnsubscribeEvents()
' change mouse pointer's position here...
ResubscribeEvents()
End Sub
Private Sub UnsubscribeEvents()
RemoveHandler Me.MouseMove, AddressOf MyForm_MouseMove
End Sub
Private Sub ResubscribeEvents()
AddHandler Me.MouseMove, AddressOf MyForm_MouseMove
End Sub
End Class