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