begin process at 2012 02 11 13:00:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Passer des paramètres à un evenement


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Passer des paramètres à un evenement

mercredi 21 novembre 2007 à 14:54:38 | Passer des paramètres à un evenement

bubbathemaster

Bonjour,

Je souhaite créer dynamiquement des ToolStripMenuItems associés à des évènements quand on clique dessus, pour ce faire, rien de plus simple, j'ai créé une fonction (vide):

private void mnuMonMenu_onClick(object sender, EventArgs e)
{
}

Et je créé des éléments du menu que j'ajoute, associés avec l'evennement onclick, style:
ToolStripMenuItem mnuItem = new ToolStripMenuItem("Clique moi stp!", null, mnuMonMenu_onClick);
mnuSystemTray.Items.Add(mnuItem);

Quand je clique dessus ca va bien dans la fonction mnuMonMenu_onClick, pas de problème, mais je n'arrive pas à passer un argument à cette fonction. Je comprends rien à l'exemple donné sur MSDN au sujet des EventArgs. Y'a t-il une solution simple (ou tout du moins facile à mettre en oeuvre) ?

Merci!
mercredi 21 novembre 2007 à 17:42:07 | Re : Passer des paramètres à un evenement

Nikoui

L'évènement Click est levé par le framework, pas par toi, donc c'est lui qui passe les arguments et qui remplis "sender" et "e" avec les 'bonnes' valeurs). Généralement, les choses sont bien faites et dans les arguments que tu recois, tu as ce qu'il faut pour traiter l'évènement (la source par exemple).

Quel genre de paramètres veux tu passer a ton évènement ?


Working as designed
www.nikoui.fr
mercredi 21 novembre 2007 à 22:48:33 | Re : Passer des paramètres à un evenement

bubbathemaster

Je récupère bien le nom du bouton cliqué dans sender, mais ca ne m'aide pas trop. Je voudrais passer une chaine de caractères. En gros j'ai un menu qui se construit dynamiquement suivant les cartes réseaux installées dans la bécanne. Chaque carte réseau génère un sous menu avec les choix type "sauver profile" "paramétrer", etc etc. Quand l'utilisateur clique sur ces menus, j'ai donc besoin de savoir quelle carte réseau est concernée. J'aimerai y passer en argument l'hardware id de la carte réseau (vous savez, les machins type "{559E7662-E4B0-44DC-93DE-6D089EB4CF12}"), faire un truc du genre (à la construction des menus) :

ToolStripMenuItem mnuItem = new ToolStripMenuItem("Configurer", null, mnuMonMenu_onClick("{559E7662-E4B0-44DC"}));

à la construction du menu. EventArgs a l'air de servir à ça, mais impossible de trouver un exemple d'utilisation concret :/
jeudi 22 novembre 2007 à 09:08:36 | Re : Passer des paramètres à un evenement

Nikoui

Réponse acceptée !
Non, l'eventArgs ne sert pas à ça, car ce n'est pas toi qui le remplis, mais dans ce cas précis c'est le framework qui déclenche l'évènement et met les paramètres prévus pour cet évènement.

Ce que tu peux faire par contre, c'est quelque chose comme ca (de mémoire, pas compilé ni testé) :

// Création du menu item en l'associant à ta fonction en cas de click
ToolStripMenuItem mnuItem = new ToolStripMenuItem("Configurer", null, mnuMonMenu_onClick));
// On met dans la propriété Tag des infos spécifiques à ce menu Item
mnuItem.Tag = ""{559E7662-E4B0-44DC}"; // Tag est de type objet, tu peux y mettre ce que tu veux


Et lorsque tu récupère le click dans ta fonction :
ToolStripMenuItem mnuItem = source as ToolStripMenuItem;
Object myParam = mnuItem.Tag;


Working as designed
www.nikoui.fr
jeudi 22 novembre 2007 à 09:11:10 | Re : Passer des paramètres à un evenement

Nikoui

Réponse acceptée !
En gros, tout les controles du framework possèdent cette fameuse propriété Tag de type object, qui permet justement de la remplir avec des infos en tout genre selon tes besoins -d'embarquer des infos supplémentaire dans un controle sans avoir à le dériver pour rajouter des propriétés spécifiques.

Cela dit, lorsque les infos en questions deviennent vraiment trop spécifiques, il faut mieux dans ce cas spécialiser le controle, c'est à dire le dériver pour en créer un plus adapté, mais ce n'est pas le cas ici.


Working as designed
www.nikoui.fr
jeudi 22 novembre 2007 à 13:56:26 | Re : Passer des paramètres à un evenement

bubbathemaster

Hum oui je vois. En fait je pensais à planquer l'info dans le ToolTip au pire, mais puisque qu'il y a un objet prevu pour stocker du tout et n'importe quoi, alors je vais utiliser ça.
Merci!
vendredi 23 novembre 2007 à 13:49:10 | Re : Passer des paramètres à un evenement

elguevel

Tu peux créer une classe qui hérite de EventArgs et qui contiendra les champs que tu souhaites.
Et tu te sert ensuite de cette classe pour passer tes arguments.
 


Cette discussion est classée dans : fonction, clique, passer, onclick, mnumonmenu


Répondre à ce message

Sujets en rapport avec ce message

onClick=history.go(-1) en c# [ par ascj ] Je voudrais savoir le nom de la fonction en C# qui correspond auonClick=history.go(-1).Car lorsque je clique sur mon bouton (Webform) j'utilise la com Passer Matrice comme Paramètre de fonction [ par otavioreis ] Bonjour,Je voudrais créer une fonction qui reçoit une matrice comme paramètre et comme résultat. Comment dois-je passer le paramètre? Comment dois je Comment passer une partie de la fonction a appler en parametre ? [ par smelmel ] Bonjour,Je sais que ce que je veux faire et faisable, j'avais lu ça quelque part, mais je n'arrive pas à me rappeler ou.Bref ce que je veux faire c'es passer dataset dans une fonction [ par olibara ] Bonjourje suis débutant en C# et j'essaye de trouver les meilleures methode pour effectuer certaines taches1- J'effectue un query mysql qui me remplit Pb avec onclick [ par Kati83 ] Bonjour, je voudrais que lorsque l'on clique sur le bouton envoyer de mon formulaire (en aspx), une fonction soit appelée pour me permettre d'uploader [c#][aspx] Datagrid [ par Kati83 ] Bonjour,J'essaie de mettre en place un datagrid mais j'ai un problème au niveau de la pagination...Ce datagrid me permet de supprimer des enregistreme [c#][asp.net] [ par Kati83 ] Bonjour,J'ai fait un poste il y a une semaine sur le forum c#, et je n'ai toujours pas de réponse.Ca fait une semine que je tourne en rond et je comme un bouton 2 fonction lorsque clique ouvrir fenetre et lorsque clique un autre fois fermer c# [ par adleni ] Salut! comment un bouton 2 fonction lorsque clique ouvrir fenetre et lorsque clique un autre fois fermer c# passer une valeur d'une form a une autre [ par mohless ] salut, ma question est simple, j'ai deux formes: f1 et f2. f1 contient un textBox (txt1) et f2 contient un textBox (txt2), je tape une valeur dans txt Multi Thread et Acces Fichier [ par vincnet68 ] Bonjour, J'ai une fonction (static) qui accède à un fichier (log) Cette fonction peux être appelée depuis plusieurs Thread. Pour ne pas avoir d'exc


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,685 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales