Accueil > Forum > > > > Créer des ToolStripMenuItem.DropDownItems dynamiquement
Créer des ToolStripMenuItem.DropDownItems dynamiquement
lundi 22 octobre 2007 à 19:19:09 |
Créer des ToolStripMenuItem.DropDownItems dynamiquement

DaFridge
|
Bonjour. J'ai une boucle qui permet de créer des DropDwnItems dynamiquement grâce à une boucle. Cependant je cherche à obtenir un événement différent pour chacun des DropDownItems, et je n'y arrive pas, sans doute parce que j'appelle une foction qui est extérieure à ma boucle et à la fonction contenant cette boucle. J'ai mis un petit bout de code histoire de me faire comprendre. int i;
private void myFunction() { ... for (i = 0; i < myArray.Count; i++) { ToolStripMenuItem Item = newToolStripMenuItem(myArray[i].ToString(), Image.FromFile("image.gif"), newEventHandler(AjouterItem_Click)); myToolStripMenuItem.DropDownItems.Add(Item); } }void AjouterItem_Click(object sender, EventArgs e) { MessageBox.Show(i.ToString()); }
Comment faire pour que ma boucle for me crée un DropDownItem avec à chaque fois un événement différent pour chaque valeur de i ?
Merci d'avance.
|
|
lundi 22 octobre 2007 à 20:25:44 |
Re : Créer des ToolStripMenuItem.DropDownItems dynamiquement

niky
|
Salut,
Tu disposes d'un tableau (myArray) pour le texte des items. Si tu fais pareil pour les événements (en faisant un tableau de EventHandler), tu devrais arriver à faire ce que tu souhaites.
|
|
lundi 22 octobre 2007 à 21:36:02 |
Re : Créer des ToolStripMenuItem.DropDownItems dynamiquement

DaFridge
|
A la fin de l'exécution de myFunction(), tous les DropDownItems ont été créés correctement, mais ils renvoient tous sur la même chose. La valeur de i n'a pas été prise en compte, tous les DropDownItems renvoient sur la dernière valeur de i.
|
|
lundi 22 octobre 2007 à 23:13:30 |
Re : Créer des ToolStripMenuItem.DropDownItems dynamiquement

niky
|
EventHandler[] myHandlers = new EventHandlers[myArray.Length];
myHandlers[0] =
new
EventHandler(AjouterItem_Click);
myHandlers[1] =
new
EventHandler(SupprimerItem_Click);
myHandlers[2] =
new
EventHandler(CopierItem_Click);
myHandlers[3] =
new
EventHandler(RenommerItem_Click); // ...
for (i = 0; i < myArray.Count; i++) { ToolStripMenuItem Item = newToolStripMenuItem(myArray[i].ToString(), Image.FromFile("image.gif"), myHandlers[i]); myToolStripMenuItem.DropDownItems.Add(Item); }
Est-ce plus clair ou suis-je à côté de la plaque ? 
|
|
mardi 23 octobre 2007 à 09:26:43 |
Re : Créer des ToolStripMenuItem.DropDownItems dynamiquement

sebmafate
|
Réponse acceptée !
beurk le tableau de EventHandler... la solution la plus propre à mon sens c'est de repartir de ton idée de départ et d'y ajouter 2 ou 3 trucs : private void myFunction() { ... for (i = 0; i < myArray.Count; i++) { ToolStripMenuItem Item = newToolStripMenuItem(myArray[i].ToString(), Image.FromFile("image.gif"), newEventHandler(AjouterItem_Click)); Item.Tag = i; myToolStripMenuItem.DropDownItems.Add(Item); } }void AjouterItem_Click(object sender, EventArgs e) { ToolStripMenuItem item = sender as ToolStripMenuItem; if (item == null) { return; } MessageBox.Show(item.ToString()); }
Sébastien FERRAND (blog) Consultant Indépendant [Microsoft Visual C# MVP]
|
|
dimanche 28 octobre 2012 à 06:55:41 |
Re : Créer des ToolStripMenuItem.DropDownItems dynamiquement

gaffa
|
sebmafate
Merciiiiiiiiiiiiiiiiiiiiiiiii
|
|
Cette discussion est classée dans : créer, boucle, dynamiquement, toolstripmenuitem, dropdownitems
Répondre à ce message
Sujets en rapport avec ce message
créer un nom de variable dynamiquement [ par amel468 ]
Bonjour, je souhaite créer un nom de variable de facon dynamique pour avoir un truc du style mavar1, marvar2, mavar3,..., marvarN au fur et a mesure q
C#>> créer des label dynamiquement... [ par feuillou ]
Bonjour,J'aimerais creer un et ajouter des labels (un nombre aleatoire) a l'aide du code suite a un click sur un boutton... Je fais ainsi (en C# :>Lab
créer dynamiquement un controle [ par net2e ]
Bonsoir je voudrais créer dynamiquement des textbox,label et des picturbox alors je ne sais pas sil ya un efonction qui permet de faire cela . merci
Créer dynamiquement [ par Adidas2 ]
Salut à tous,Je voudrais savoir s'il est possible de créer dynamiquement plusieurs composants du même type avec une "for" ?Je voudrais par exemple cré
créer un control dans une boucle [ par maitesn1 ]
salut tout le monde,je voudrai savoir comment faire pour créer, par exple un texBox dans une boucle for ou while.Mon probleme est que je n'arrive pas
Créer dynamiquement des composant Timer et leur associer l'évenement Tick [ par gerver ]
Bonsoir, j'aimerai une petite explication sur la création dynamique de composant et l'association d'un évènement Particulièrement pour le composant T
Création d'objets graphiques dynamiquement [ par bart0606 ]
Bart Bonjour, je veux réaliser un prograzmme pour m'aider à représenter graphiquement un projet. J'aurais besoin de créer un array d'objets graphiq
toolstripmenuitem and co [ par cudenetf ]
bonjour,je prend des elements d'une table et je voudrais les mettre en toolstripmenuitem dans un menustripje parviens a créer les toolstrip menuitem i
Noms de variables dans une boucle for [ par tiju50 ]
Je voudrais savoir s'il est possible de créer mais aussi d'appeler des variables dans une boucle for du style :for(int i = 1 ; i for(int
methode pour créer 1tablo avec des prop collpase/extend ? [ par amel468 ]
bonjour, je dois créer un tableau alimenté par une base de données. Il doit etre fait de lignes parents / enfants. Quand on clique sur une ligne, elle
Livres en rapport
|
Derniers Blogs
INTéGRATION YAMMER ET SHAREPOINT ONLINE (OFFICE 365), éTAPE 1 .INTéGRATION YAMMER ET SHAREPOINT ONLINE (OFFICE 365), éTAPE 1 . par Patrick Guimonet
#Yammer Certains s'en sont déjà fait l'écho (ici en allemand par exemple : Yammer Integration in Office 365 Phase 1) ou bien sûr sur le blog SharePoint : Make Yammer your default social network in Office 365 en anglais. Mais c'e...
Cliquez pour lire la suite de l'article par Patrick Guimonet [DYNAMICS CRM] AJOUTER LES DOSSIERS DE CRM AU DOSSIER FAVORIS D'OUTLOOK[DYNAMICS CRM] AJOUTER LES DOSSIERS DE CRM AU DOSSIER FAVORIS D'OUTLOOK par bianca
Objectif
Pour aller plus rapidement dans les menus de Dynamics CRM depuis votre client CRM pour Outlook, vous pouvez utiliser le dossier des Favoris d'Outlook. En effet, par simple glisser/déplacer, vous pouvez déposer un éléme...
Cliquez pour lire la suite de l'article par bianca VISUAL STUDIO 2013VISUAL STUDIO 2013 par Etienne Margraff
Ahh, ENFIN ! c'est officiel, il va y avoir un VS et un TFS 2013. De nouvelles fonctionnalités qui vont à mon sens assoir la maturité de TFS qui est maintenant l'outil incontournable pour tout projet (.NET, mais pas seulement !). Si vous n'avez pas jet...
Cliquez pour lire la suite de l'article par Etienne Margraff CONFIGURER LA COLLATION SQL SERVER POUR SHAREPOINT CONFIGURER LA COLLATION SQL SERVER POUR SHAREPOINT par JeremyJeanson
Note : Je poste cet article à titre de pense-bête. Cela fait des années que je me trimballe avec une capture d'écran, car je ne me rappel jamais comment choisir la collation d'un SQL Server pour SharePoint. Pour SharePoint, il est conseillé de choisir la ...
Cliquez pour lire la suite de l'article par JeremyJeanson ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 1: CRéATION DU PLUGINETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 1: CRéATION DU PLUGIN par Philess
Dans cet article nous allons créer un plugin installable sur le Team Web Access qui s'intègrera dans l'architecture du site et se chargera au moment où on le décidera.
Avant de lire ce billet et si cela n'est pas encore fait j...
Cliquez pour lire la suite de l'article par Philess
Logiciels
Nego Facturation (1.85)NEGO FACTURATION (1.85)Nego Facturation est un logiciel complet qui permet de gérer vos factures et devis très simplemen... Cliquez pour télécharger Nego Facturation Devis-Factures PHMSD (2.2.0.1)DEVIS-FACTURES PHMSD (2.2.0.1)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD WDmemoCode (2.0.0.1)WDMEMOCODE (2.0.0.1)WDmemoCode a été conçu pour aider les développeurs Windev à créer/compléter et conserver une base... Cliquez pour télécharger WDmemoCode ProtoMedic (4.0.0.11)PROTOMEDIC (4.0.0.11)ProtoMedic est un logiciel destiné principalement aux médecins généralistes.
ProtoMedic permet d... Cliquez pour télécharger ProtoMedic MyCurriculum 2011 (7.4.1.12)MYCURRICULUM 2011 (7.4.1.12)Rédigez votre Curriculum Vitae mais également ceux de votre famille ou de vos amis très facilemen... Cliquez pour télécharger MyCurriculum 2011
|