1

私の問題は、MouseMove イベント内でマウス ポインターの位置を変更する必要があることです。これにより、無限再帰が発生します。生成されるMouseMove イベントを抑制する必要がありMe.Cursor.Position = newposます。どうやってやるの?

私は読んだことMe.EnableEvents = Falseがありますが、これは Visual Studio 2005 では有効ではなく、同等のものを見つけることができませんでした。

4

1 に答える 1

0

正確に何をしようとしていますか?たぶんもっと良い方法があります。ただし、これが必要な場合は、 を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
于 2012-03-28T13:34:49.917 に答える