30/01/2025 - Orangine ha scritto:
Dove sbaglio?
Ciao, Non hai controllato e corretto quanto ti avevo suggerito?
30/01/2025 - By65Franco ha scritto:
Ciao, mi sembra che stai aggiungendo (accumulando) "AddHandler" e non riesci a rimuoverli... mi sa che devi rivedere "RemoveHandler"
Per Esempio:
Come prima cosa potresti dividere i processi.
Poi per sicurezza potresti rimuovere prima di aggiungere l'handler
Puoi per esempio scrivere i metodi in questo modo che risulta un pò più leggibile:
' TICK TIME
Private Sub TimerHome_Tick(sender As Object, e As EventArgs) Handles TimerHome.Tick
' remove handler mouse
RemoveHandler Me.MouseMove, AddressOf MouseMoveHandler
' add handler mouse
AddHandler Me.MouseMove, AddressOf MouseMoveHandler
End Sub
' MOUSE MOVE HANDLER
Private Sub MouseMoveHandler(ByVal sender As Object, ByVal e As MouseEventArgs)
' retrieve new coordinates mouse and display
NewPositionMouse = MousePosition
Me.LabelMousePosition.Text = NewPositionMouse.ToString()
' save last coordinates mouse
LastPositionMouse = NewPositionMouse
End Sub
e se per esempio in form load avvii il timer:
' FORM LOAD
Private Sub FormMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' set timer and start
TimerHome.Interval = 1000
TimerHome.Start()
End Sub
ottieni una cosa di questo tipo:

In questo esempio si registra lo spostamento del mouse ad ogni Secondo con l'impostazione "TimerHome.Interval = 1000"
Non so se corrisponde esattamente al tuo scopo e/o alla tua richiesta, ma l'esempio può aiutarti a capire come poter interagire tra questi due eventi con il metodo che hai postato.
Prova ad approfondire e vedi te cosa e come fare... ;-)
.
[Edit]
Dimenticavo un osservazione... se vuoi tracciare solo il movimento del mouse allora non hai bisogno del Timer e la soluzione ottimale sarebbe quella di aggiungere l'handler una sola volta, per esempio in form load. In questo modo il sistema risulta più efficiente e ne beneficia la memoria.
Per esempio
' FORM LOAD
Private Sub FormMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' set handler
AddHandler Me.MouseMove, AddressOf MouseMoveHandler
End Sub