En C # (Microsoft Visual Studio 201 ), comment puis-je affecter un raccourci clavier à un bouton tel que le suivant?
private void closeButton_Click(object sender, EventArgs e)
{
// Close the program
this.Close();
}
Je sais que je peux utiliser le caractère "&" dans le texte du bouton et créer un Alt - n raccourci, mais je voudrais créer un seul raccourci clavier, tel que c pour exécuter ce qui précède.
KeyDown est votre ami;) Par exemple, si vous voulez la touche de raccourci A tandis que Shift est pressé, essayez ceci:
void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A && e.Shift)
// Do something
}
Si vous voulez un "vrai" raccourci clavier, vous pouvez utiliser des crochets. Regardez la question Stack Overflow RegisterHotKeys et crochets clavier globaux?.
Voici une approche différente:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch(keyData)
{
case Keys.F2:
// do something...
return true;
case Keys.F3:
// do something...
return true;
case Keys.F4:
// do something...
return true;
default:
return base.ProcessCmdKey(ref msg, keyData);
}
}
Vous n'avez pas besoin de modifier la valeur de KeyPreview
.
si vous voulez ajouter Ctrl + S dans switch statment, vous pouvez également essayer le code ci-dessous.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (keyData)
{
case Keys.Control | Keys.S:
// do something...
return true;
case Keys.Control |Keys.Alt | Keys.S:
// do something...
return true;
case Keys.F2:
// do something...
return true;
case Keys.F3:
// do something...
return true;
case Keys.F4:
// do something...
return true;
default:
return base.ProcessCmdKey(ref msg, keyData);
}
}