Pagina 1 di 1

[VB.NET] Evento MouseHover per TUTTI i Bottoni di un Form

MessaggioInviato: gio ott 28, 2010 12:26 am
da M@ttia
Provenendo dal VB6 e avendo fatto molto di C++ a linea di comando, il mio passaggio al VB.NET si rivela via via sempre meno traumatico con l'organizzazione di ogni singola cosa ad oggetti (classi). Tuttavia mi ritrovo con un problema che ancora non riesco ad risolvere:


In pratica io vorrei creare una funzione che viene richiamata ogniqualvolta che io passo con il mouse sopra ad un bottone, e a seconda di quale bottone sia mi scriva qualcosa di diverso in una casella di testo (ad es. il testo del bottone). In pratica vorrei fare qualcosa del tipo:

Codice: Seleziona tutto
Private Sub PassaSopra(ByVal sender As Object, ByVal e As System.EventArgs) Handles [AnyButton].MouseHover
TextBox1.Text = sender.Text
End Sub


Riesco a farlo senza problemi per 1,2,3 bottoni facendo
Codice: Seleziona tutto
Private Sub PassaSopra(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseHover,Button2.MouseHover,Button3.MouseHover
...
End Sub

Ma a me servirebbe farlo per ogni bottone sul form (che, venendo anche creati a runtime, possono essere in linea di principio infiniti).
Stavo pensando di creare una Collection, aggiungere tutti i bottoni (anche al momento della loro creazione) a questa collezione, e poi creare una specie di
Codice: Seleziona tutto
Private Sub PassaSopra(ByVal sender As Object, ByVal e As System.EventArgs) Handles MiaCollezione.MouseHover
...
End Sub

Ma anche qui non riesco ad ottenere il "MiaCollezione.MouseHover" (cercando ho anche trovato il comando "AddHandler", che però non riesco ad utilizzare).

Grazie a chi saprà darmi una mano (accetto anche piedi comunque!) [^]

Re: [VB.NET] Evento MouseHover per TUTTI i Bottoni di un For

MessaggioInviato: gio ott 28, 2010 1:25 am
da M@ttia
Rispondo da solo: ho risolto creando la funziona "PassaSopra" senza nessun "Handles", e poi facendo sì che, alla creazione di un nuovo bottone, oltre a determinarne il nome, il testo, ecc. aggiungessi anche "AddHandler NuovoBottone.MouseHover, AddressOf PassaSopra". [;)]