Ho un problema con l'impostazione dello stesso gestore di eventi per tutti i controlli nel modulo. Voglio gestire i pulsanti F5-F7 in modo uniforme nella mia applicazione, quindi cerco di registrare lo stesso gestore di eventi per tutti i controlli del modulo. Ho inseritoUn gestore di eventi per tutti i controlli nel modulo
foreach (System.Windows.Forms.Control cont in this.Controls)
cont.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyPress);
a InitializeComponent funzione() appena prima generato automaticamente ResumeLayout/PerformLayout chiamate. Non importa il nome MainForm_KeyPress, in realtà è un gestore di eventi KeyDown ora.
Ho anche provato ad inserire il codice nella mia funzione init() chiamata dal costruttore. Ma il risultato è stato lo stesso: l'evento non si verifica quando premo i tasti. L'accento è posto su uno dei pulsanti del modulo.
Tuttavia, se si implementa il gestore per uno dei pulsanti mediante lo strumento di progettazione (nome della funzione copia nel campo evento KeyPress), l'evento viene generato correttamente se il pulsante è a fuoco.
Qualche idea sul perché foreach non ha funzionato?
Un gestore di eventi per domarli tutti? – jason
Si prega di non aggiungere il prefisso ai titoli con "C#:". Ecco a cosa servono i tag. –
@Jason - e nel buio i dati li legano. – TrueWill