Se l'Evento MouseDown() della ListBox non funziona

Da Gambas-it.org - Wikipedia.
Versione del 8 dic 2023 alle 09:12 di Vuott (Discussione | contributi) (Creata pagina con "Con il variare delle versioni di Gambas l'Evento "_MouseDown()" può non funzionare. La spiegazione di questo fatto è così data da B. Minisini nella Mailing List ufficiale...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Con il variare delle versioni di Gambas l'Evento "_MouseDown()" può non funzionare.

La spiegazione di questo fatto è così data da B. Minisini nella Mailing List ufficiale di Gambas:

Compound non-native controls usually eat some of the low-level events.

You should normally never try to handle low-level events on complex controls.

Vedasi: https://lists.gambas-basic.org/pipermail/user/2023-December/080959.html

A tal riguardo è stata proposta la seguente soluzione, per ottenere il risultato richiesto:

Public Sub Form_Open()

 Dim hobs As Observer = New Observer(ListBox1.Children[0]) As "ListBox1Inner"

End


Public Sub ListBox1Inner_MouseDown()

 Object.Raise(ListBox1, "MouseDown")

 Stop Event   ' Blocca ulteriori immediate sollevazioni dell'Evento

End


Public Sub ListBox1_MouseDown()   ' Ora l'Evento "_MouseDown()" funziona

 Debug "got mousedown"

End