Как подавить событие MouseMove в конкретном случае? - PullRequest
1 голос
/ 27 марта 2012

Моя проблема в том, что мне нужно изменить положение указателя мыши в событии MouseMove, которое вызывает бесконечную рекурсию. Мне нужно подавить событие MouseMove, которое генерирует Me.Cursor.Position = newpos. Как я могу это сделать?

Я прочитал о Me.EnableEvents = False, но это не относится к Visual Studio 2005, и я не смог найти эквивалент.

1 Ответ

0 голосов
/ 28 марта 2012

Что именно вы пытаетесь сделать? Может быть, есть лучший способ. Но если предположить, что это именно то, что вам нужно, вы можете отписаться от обработчика событий в вашем событии 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...