Shortcut Key

Résolu
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 21 janv. 2008 à 14:00
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 21 janv. 2008 à 21:08
Bonjour,

Je cherche comment on peut ajouter des raccourcies clavier sur une application par exemple : la touche "Del" => action supprimer; Ctrl+A => action Ajouter ...
J'ai mis FormKeyPreview à true et mis dans le FormKeyPress (action que j'ai affecté à tout les components concernées) les différentes actions du type :

if (e.KeyChar.Equals(
Keys.F1))
{

MessageBox.Show(
"Test");

}

Mais ça ne marche pas !!!

3 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
21 janv. 2008 à 19:45
Salut,

Pour "ce genre" de touches (F1, touches directionnelles, ...),  utilises plutot l'evenement KeyDown (ou KeyUp).
Et pour que ce soit plus propre, utilise un switch / case plutot que des ifs

Autrement, tu peux aussi overrider la méthode ProcessCmdKey

Mx
MVP C# 
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
21 janv. 2008 à 21:08
Regarde le parametre KeyEventArgs passé à la méthode, tu as des propriétés booleenes Alt, Control et Shift qui t'indiquent si ces touches sont pressées ou non

Mx
MVP C# 
3
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
21 janv. 2008 à 20:58
Yes, super !!

Merci MorpionMX, il est vrai que cela marche mieux d'autant plus que cette évènement possède un e.KeyCode qui retourne un Keys ce qui correspond exactement à ce que je cherchais

en revanche une petite question comment fais-tu pour combiner 2 touches comme par exemple Ctrl+A
j'ai essayé comme cela mais ça n'a pas l'air de fonctionner

string temp;
switch(e.KeyCode)
{
   case(Keys.Control & Keys.A) : //mon évènement
         break;
   default : temp = string.Empty; //rien du tout
      break;
}
0
Rejoignez-nous