Se vi sto capendo correttamente, l'UserControl GameButton scatterà l'evento quando cliccato, ma non quando l'etichetta viene cliccato - e si vuole entrambi. Questo perché l'etichetta (un controllo) è in cima allo sfondo. Pertanto, è necessario registrare l'etichetta anche con l'evento click. Questo può essere fatto manualmente nel designer o programmaticamente per ciascun controllo sulla pagina.
Se si vuole fare tutti i controlli in UserControl, mettere questo in evento OnLoad della UserControl e si può usare lo stesso evento click per ogni controllo:
foreach(Control c in this.Controls){
c.Click += new EventHandler(yourEvent_handler_click);
}
public void yourEvent_handler_click (object sender, EventArgs e){
//whatever you want your event handler to do
}
EDIT: Il modo migliore è quello di creare la fare clic sulla proprietà del gestore eventi nel controllo utente. In questo modo, ogni volta che aggiungi/rimuovi un evento click al tuo controllo utente, lo aggiunge/rimuove automaticamente a tutti i controlli all'interno del controllo utente.
public new event EventHandler Click {
add {
base.Click += value;
foreach (Control control in Controls) {
control.Click += value;
}
}
remove {
base.Click -= value;
foreach (Control control in Controls) {
control.Click -= value;
}
}
}
Questo è come per un altro post:
Spero che questo aiuti!
framework di interfaccia utente (WinForms, WPF, Webforms, MVC)? –
dispiace, WinForms – Oztaco
Inoltre si prega di evitare di includere i tag che ha poco o nulla a che fare con la tua domanda (es. visual-studio) –