Come fermare l'evento MouseMove

di il
2 risposte

Come fermare l'evento MouseMove

Buona sera a tutti

premetto che cerco aiuto per vb.net linguaggio visualbasic e non sono sicuro se sto postando nel posto giusto.

Ho un problema con l'evento me.mousemove, provo a spiegarmi: con il codice sotto prelevo la posizione del mouse al momento del tick ti un timer, ma vorrei terminare l'evento per riprenderlo al tick successivo.

    Private Sub TimerHome_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TimerHome.Tick
       AddHandler Me.MouseMove, Sub(s As Object, ev As MouseEventArgs)
                                    NewPositionMouse = MousePosition
                                    Label1.Text = NewPositionMouse .ToString
                                End Sub
       LastPositionMouse = NewPositionMouse 
       RemoveHandler Me.MouseMove, AddressOf TimerHome_Tick
   End Sub

Dove sbaglio?

Grazie in anticipo

2 Risposte

  • Re: Come fermare l'evento MouseMove

    Ciao, mi sembra che stai aggiungendo (accumulando) "AddHandler" e non riesci a rimuoverli...  mi sa che devi rivedere "RemoveHandler"

  • Re: Come fermare l'evento MouseMove

    30/01/2025 - Orangine ha scritto:

    Buona sera a tutti

    premetto che cerco aiuto per vb.net linguaggio visualbasic e non sono sicuro se sto postando nel posto giusto.

    Ho un problema con l'evento me.mousemove, provo a spiegarmi: con il codice sotto prelevo la posizione del mouse al momento del tick ti un timer, ma vorrei terminare l'evento per riprenderlo al tick successivo.

        Private Sub TimerHome_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TimerHome.Tick
           AddHandler Me.MouseMove, Sub(s As Object, ev As MouseEventArgs)
                                        NewPositionMouse = MousePosition
                                        Label1.Text = NewPositionMouse .ToString
                                    End Sub
           LastPositionMouse = NewPositionMouse 
           RemoveHandler Me.MouseMove, AddressOf TimerHome_Tick
       End Sub

    Dove sbaglio?

    Grazie in anticipo

    Mousemove si scatena quando il puntatore passa sopra l'oggetto che ha l'evento mousemove.

    Se vuoi fare un dragdrop usi dragdrop. Se vuoi dare la posizione iniziale e spostare l'oggetto nella posizione finale usi mousedown per attivare la posizione iniziale e mouse up per il punto di rilascio e chiamando l'evento dragdrop. Ovviamente dai una variabile logica per bypassare dragdrop se non serve.

Devi accedere o registrarti per scrivere nel forum
2 risposte