Assigner touche enter bouton [Résolu]

floweb81 2 Messages postés mercredi 13 juin 2007Date d'inscription 27 octobre 2007 Dernière intervention - 27 oct. 2007 à 17:54 - Dernière réponse : cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention
- 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
Afficher la suite 

4 réponses

Répondre au sujet
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 27 oct. 2007 à 21:20
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Nikoui
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 27 oct. 2007 à 18:35
0
Utile
Salut,
Regarde au niveau des events de la form qui contient tes Controls...
Plus particulièrement KeyUp.

<hr />
-My Blog-
Commenter la réponse de cs_Bidou
dvjh 6 Messages postés vendredi 26 octobre 2007Date d'inscription 14 décembre 2008 Dernière intervention - 27 oct. 2007 à 22:28
0
Utile
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 !");
}
Commenter la réponse de dvjh
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 27 oct. 2007 à 23:34
0
Utile
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
*/
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.