Assigner touche enter bouton

Résolu
floweb81 Messages postés 2 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 27 octobre 2007 - 27 oct. 2007 à 17:54
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 27 oct. 2007 à 23:34
Hello, j'ai pas mal cherché sur le site comment simplement assigner la toucher Enter du clavier à un bouton dans un form.

J'ai donc une form "mainFrm" et souhaite lui intégrer la gestion des événements clavier, pour pouvoir assigner la touche enter à l'un de mes boutons!

Un grand merci d'avance.

Flo

4 réponses

Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
27 oct. 2007 à 21:20
Et pour le cas particulier de la touche "Enter" tu peux aussi utiliser la propriété "AcceptButton" de ta Form, pour la faire pointer sur le bouton en question (et "CancelButton" pour associer un bouton à l'appui sur la touche "Echap").


Working as designed
www.nikoui.fr
5
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 oct. 2007 à 18:35
Salut,
Regarde au niveau des events de la form qui contient tes Controls...
Plus particulièrement KeyUp.

<hr />
-My Blog-
0
dvjh Messages postés 6 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 14 décembre 2008
27 oct. 2007 à 22:28
Dans les propriétés de la Form : sous Divers mettre KeyPreview à true.

Dans les événements, double cliquer sur KeyUp pour la Form et pour le Bouton


void FormKeyUp(object sender, KeyEventArgs e)
{
// Pas de distinction entre la touche "retour à la ligne"
// et la touche "enter"
if (Keys.Enter == e.KeyData)
{
MessageBox.Show(e.KeyData.ToString());

this.BtnClick(sender, e);
}
}

void BtnClick(object sender, EventArgs e)
{
MessageBox.Show("Activation du bouton !");
}
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
27 oct. 2007 à 23:34
Salut,

"this.BtnClick(sender, e); "
Non, non, non et non ! On n'appelle pas comme ça un gestionnaire d'évènement.

Ne faites pas ça : un gestionnaire d'évènements de clic sur bouton n'est pas censé se prendre une instance de la classe Form en paramètre sender.
En plus, pour la maintenance et les évolutions, c'est un cauchemar. Avec ce genre de code, on peut "cliquer" même si le bouton est désactivé.

Si les autres solutions proposées ne sont pas utilisables, la rustine peut passer par Button.PerformClick à la rigueur (avec un bon commentaire et une bonne explication dans la doc, pour que le prochain dev qui travaillera sur l'application aie conscience de la chose), mais sinon il faut revoir l'archi.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous