2010-03-23 9 views

risposta

1

Catturare l'evento KeyDown e inserire un'istruzione if in esso per controllare quali tasti sono stati premuti.

private void form_KeyDown(object sender, KeyEventArgs e) 
{ 
    if ((e.Control && e.KeyCode == Keys.F) || (e.Control && e.KeyCode == Keys.S)) { 
     txtSearch.Focus(); 
    } 
} 
10

Un modo è di ignorare l'evento ProcessCMDKey.

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (keyData == (Keys.Control | Keys.S)) 
    { 
     MessageBox.Show("Do Something"); 
     return true; 
    } 
    return base.ProcessCmdKey(ref msg, keyData); 
} 

EDIT: In alternativa è possibile utilizzare l'evento KeyDown - vedere How to capture shortcut keys in Visual Studio .NET.

+0

Ero solito andare per l'alternativa, ma questo è molto più semplice! +1 – Joel

0

Aggiungere un evento che cattura la pressione di un tasto sul modulo, analizzare la pressione del tasto e vedere se corrisponde a uno dei tasti di scelta rapida e quindi assegnare lo stato attivo.

Problemi correlati