Assigner touche enter bouton [Résolu]

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

Votre réponse

4 réponses

Meilleure réponse
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Dernière intervention
19 août 2008
- 27 oct. 2007 à 21:20
3
Merci
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

Merci Nikoui 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Nikoui
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
- 27 oct. 2007 à 18:35
0
Merci
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
Messages postés
6
Date d'inscription
vendredi 26 octobre 2007
Dernière intervention
14 décembre 2008
- 27 oct. 2007 à 22:28
0
Merci
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
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
- 27 oct. 2007 à 23:34
0
Merci
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.