HowTo C# – Intercettare l’Enter prima dell’AcceptButton

Se state sviluppando su un’applicazione Windows Form allora conoscete la comodità della property AcceptButton che vi permette di indicare qual’è il pulsante della form che verrà considerato quando l’utente premerà ENTER, indistintamente dalla posizione del cursore all’interno della form stessa.

Se avete la necessità di intercettare la pressione dell’ENTER prima dell’AcceptButton,  allora provate ad effettuare l’override del metodo ProcessDialogKey come qui di seguito:

   1: protected override bool ProcessDialogKey(Keys keyData) 
   2: {  
   3:    if (keyData == Keys.Enter) 
   4:       return base.ProcessDialogKey(Keys.None);  
   5:  
   6:    return base.ProcessDialogKey(keyData); 
   7: }

In questo esempio, intercetto la pressione dell’Enter e ritorno al ProcessDialogKey un bel Keys.None che di fatto interrompe la catena di eventi a fa sì che l’evento di pressione del relativo pulsante indicato dall’AcceptButton non venga scatenato.

All’interno del metodo ovviamente va aggiunta l’eventuale logica che intende gestire l’evento della pressione dell’ENTER.

Per correttezza riporto il link che mi ha dato la giusta “ispirazione”:

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/9d36d027-03e0-473e-9fd9-a12b79257b86/

0 comments:

Luca Ritossa Blog - Designed by Posicionamiento Web | Bloggerized by GosuBlogger