Identifier le contrôle sur lequel on a cliquer

Résolu
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 - 20 déc. 2006 à 21:33
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 21 déc. 2006 à 08:58
Bonjours à tous,



Je suis débutant en C#



Lors d’un événement clic, comment fait-on pour identifier l’objet sur lequel l’utilisateur à cliquer ?



Je connais le code pour VB, exemple pour un bouton :




       
Dim oB As Button CType(sender, Button)<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" /??>






        MessageBox.Show(oB.Name)








J’ai recherché sur
www.cSharpfr.com
mais je n’ai rien trouvé ! Sa me parait bizarre que je soi le premier à poser la question.



J’ai également cherché des traducteurs VB => C#, ce n’est pas du tout au point lol, no comment’



Si quelqu’un peut m’aider sa serai gentil

9 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
20 déc. 2006 à 21:43
Salut,

Dans la méthode associée à l'evenement, tu as un paramètre object sender

Donc c'est assez similaire à ton exemple :  Button bt = (Button)sender;

Mx
MVP C# 
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 déc. 2006 à 21:44
Salut,
Comme ceci :

Button myButton = sender as Button;
if(myButton != null)
{

}

<hr size="2" />-Blog-
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 déc. 2006 à 21:46
Eu par le refresh (ça faisait longtemps)

<hr size="2" />-Blog-
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
20 déc. 2006 à 21:47
Au moins il a 2 manières différentes de faire ;)

Mx
MVP C# 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
20 déc. 2006 à 22:18
lol vous etes quasiment syncro,

c'est simpa de m'avoir répndu aussi vite !
 Merci beaucoup, et sa marche parfaitement mais petite question, histoire de bien tout comprendre "if(myButton != null)"
"!=" veut dire "différent de" si j'en crois mon bouqin avec lequel j'apprend C# mais je n'arrive pas à comprendre l'utiliter de ce if ! Si monBonton est différent de null ?
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
20 déc. 2006 à 22:24
Salut,

L'opérateur as retourne null si jamais sender ne peut être casté en type demandé, alors que le cast standard provoque la levée d'un exception.
Le if ici permet de vérifier que le cast via as n'a pas échouer, et ainsi évite la levée d'une exception NullReferenceException dans la suite du code.

/*
coq
MVP Visual C#
CoqBlog
*/
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
21 déc. 2006 à 06:09
Oui... en gros, pour compléter la réponse de mes camarades...

L'opérateur as est l'équivalent de ceci :

Button myButton = null;
if (sender is Button) {
   myButton = (Button)sender;
}

C'est pas facilement à comprendre au début, mais c'est super utile... par contre, ca ne fonctionne qu'avec les types d'instances (et non les types de valeur)

Sébastien FERRAND(blog)
Consultant Indépendant
[Microsoft MVP
0
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 1
21 déc. 2006 à 08:03
ok
non c'est bon j'ai compris :)
merci beaucoup à tous ;)
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
21 déc. 2006 à 08:58
Tiens Seb a un nouvel avatar ^^

La MSDN nous donne même une autre expression équivalente au as :

expression is type ? (type)expression : (type)null

Maintenant j'aimerais savoir, pourquoi ils castent null en (type), a part pour faire joli  ...

Mx
MVP C# 
0
Rejoignez-nous