Attribuer une fonction à un ToolStripMenuItem

Résolu
JurianKun Messages postés 15 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 5 septembre 2006 - 27 juil. 2006 à 22:05
JurianKun Messages postés 15 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 5 septembre 2006 - 28 juil. 2006 à 12:29
Bonsoir,
J'ai créé un menu dynamiquement, et j'aimerais qu'en cliquant sur un de ses items, une fonction dont les paramètres sont un string soit éxécutée, mais je n'arrive pas à attribuer cette fonction.

...
{
    for (int i = 0; i < Config.NombreCles("Statuts"+User); ++i)
    {
        MenuStatuts.DropDownItems.Add(new ToolStripMenuItem("Blabla", null, new EventHandler(ChangerStatut)));
    }
}
public void ChangerStatut (string StringStatut)
{
    ...
}

J'obtiens l'erreur "No overload for 'ChangerStatut' matches delegate 'System.EventHandler'". Est-ce que quelqu'un a une solution ?

11 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 juil. 2006 à 22:57
Quand on fait un clique sur un Control, plus précisement un bouton, c'est toujours un eventhandler qui a cette signature (object, EventHandler) qui est utilisé.
Si après tu as besoin d'autres informations (pour utiliser dans ce handler) alors il faut accéder à des variables de classe, mais pas des variable local (passée en paramètre).

<hr size="2" />VC# forever
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
28 juil. 2006 à 06:06
pour passer un paramètre... pourquoi ne pas utiliser la propriété Tag ? elle sert à ca !

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual 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
27 juil. 2006 à 22:20
Salut,
Un EventHandler prend en argument un object et un EventArgs  :
public void ChangeStatus(object o, EventArgs e)

<hr size="2" />VC# forever
0
JurianKun Messages postés 15 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 5 septembre 2006
27 juil. 2006 à 22:21
Oui mais du coup comment je fais pour passer mon string en paramètre de ChangerStatut() ?
0

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

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 juil. 2006 à 22:45
Mais euh pourquoi tu veux passer un string quand y'a un clique sur ton bouton??

<hr size="2" />VC# forever
0
JurianKun Messages postés 15 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 5 septembre 2006
27 juil. 2006 à 22:51
Parce que les informations dont a besoin la fonction sont dans un fichier .ini, mais j'ai réussi à faire autrement, en retrouvant l'index de l'item cliqué. Merci
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 juil. 2006 à 22:58
A propos, les fichiers .ini c'est plus trop d'actualité
Pourquoi pas un tit XML ?

<hr size="2" />VC# forever
0
JurianKun Messages postés 15 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 5 septembre 2006
27 juil. 2006 à 22:59
Ok
0
JurianKun Messages postés 15 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 5 septembre 2006
27 juil. 2006 à 22:59
Oui je suis au courant pour les XML, mais je sais pas du tout m'en servir :x
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
27 juil. 2006 à 23:02
Ca devrait pas être un gros problème, c'est pas trop compliqué et y'a surtout des tonnes et des tonnes d'article et documentations à ce sujet.
Fait des recherches sur ce site et sur Google et regarde dans MSDN. Tu trouveras assurément ton bonheur.

<hr size="2" />VC# forever
0
JurianKun Messages postés 15 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 5 septembre 2006
28 juil. 2006 à 12:29
Ah j'arrivais pas à trouver à quoi servait cette propriété, maintenant je sais, merci :)
0
Rejoignez-nous