survcopt
Messages postés224Date d'inscriptionmardi 27 mai 2003StatutMembreDernière intervention13 mai 2022
-
9 juin 2009 à 16:15
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
9 juin 2009 à 16:50
Bonjour,
J'ai une form avec des boutons texbox combo ....
Je voudrais faire comme un hook pour capturer l'appui sur le clavier de certaines touches.
En effet je ne veux pas que les touches appuyées apparaissent dans la textbox si c'est elle qui a le focus.
Merci
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 9 juin 2009 à 16:50
Salut
Utilise la propriété KeyPreview de ta form et mets-là à true. Ça enverra d'abord les événements de clavier à ta form avant de les envoyer à ta textbox (KeyUp / KeyDown / KeyPressed)
Avec KeyUp et KeyDown, tu pourras voir très simplement sur quelle touche tu as appuyé grâce à e.KeyCode
Avec KeyPressed, tu ne pourras pas voir quelle touche, mais uniquement quel caractère tu as tapé : e.KeyChar (d'ailleurs, cet événement n'est pas appelé lorsque tu appuies sur Ctrl par exemple).
Cependant, l'événement qui remplit la textbox est l'événement KeyPressed, donc c'est celui-là dont il faut que tu t'occupes si tu souhaites qu'il n'aille pas jusqu'à la textbox.
=> Exemple pour empêcher l'utilisateur de taper un 'C' dans une textbox et affiche un message
this.KeyPreview = true;
this.KeyPressed += new KeyPressEventHandler(Form1_KeyPress);
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{ if (e.KeyChar 'c' || e.KeyChar 'C')
{
e.Handled = true; // Si l'événement est Handled, il n'est pas utilisé ailleurs (dans ta textbox par exemple)
MessageBox.Show("Tu as appuyé sur C et rien n'a été tapé dans ta textbox.");
}
}
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -