Détection touches de fonctions

Résolu
ZeGot Messages postés 20 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 9 février 2009 - 14 mars 2006 à 18:29
ZeGot Messages postés 20 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 9 février 2009 - 25 avril 2006 à 09:46
Bonjour !

Je rencontre un petit problème avec un de mes programmes : je dois détecter l'appui sur une touche de fonction dans un champ de saisie.

- Premiere tentative avec OnKeyPress ou OnKeyDown, mais il semble que les touches de fonction ne soient pas gérées par ces évènements...

- Deuxième tentative en utilisant IMessageFilter (source trouvée sur le csharpr, merci ) mais ça ne fonctionne que sous windows et pas sous Windows CE ...

Et là je bloque... Quelqu'un aurait-il une idée pour m'aider à avancer ?

Merci d'avance !

3 réponses

ZeGot Messages postés 20 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 9 février 2009
27 mars 2006 à 15:40
A première vue, les touches de fonction ne sont pas gérées par l'évènement Keypress mais sont gérées par les évènements KeyDown et KeyUp de la TextBox...

Affaire à suivre...
3
student_001 Messages postés 5 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 24 décembre 2007
24 avril 2006 à 15:53
Je bloque dans le même truc j'aimerai bien intercepter les touche de fontions de mon PDA...

Titoo
0
ZeGot Messages postés 20 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 9 février 2009
25 avril 2006 à 09:46
Salut,

Voici le code de la fonction appellée par l'évènement OnKeyUp de ma TextBox:

private void txt_Choix_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
switch(e.KeyData.ToString())
{
case "D0":
e.Handled=true;
// Traitement à effectuer si on appuie sur "0"

break;


case "D1":
e.Handled=true;
// Traitement à effectuer si on appuie sur "1"


break;


case "F1":
e.Handled=true;

// Traitement à effectuer si on appuie sur "F1"
break;


case "F4":
e.Handled=true;

// Traitement à effectuer si on appuie sur "F1"
break;


default:
e.Handled=false;
MessageBox.Show("Choix non valide : " + e.KeyChar.ToString());
break;
}
}


Si tu ne connais pas le code renvoyé par la touche, le MessagBox du case "Default" devrait te l'afficher.

Bon courage !
0
Rejoignez-nous