Détection touches de fonctions [Résolu]

Signaler
Messages postés
20
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
9 février 2009
-
Messages postés
20
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
9 février 2009
-
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

Messages postés
20
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
9 février 2009

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...
Messages postés
5
Date d'inscription
jeudi 15 juillet 2004
Statut
Membre
Dernière intervention
24 décembre 2007

Je bloque dans le même truc j'aimerai bien intercepter les touche de fontions de mon PDA...

Titoo
Messages postés
20
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
9 février 2009

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 !