private void menuToolStripMenuItem_Click(object sender, EventArgs e) { string monTexte = ((Control)sender).Text; }
string monTexte = ((ToolStripMenuItem)sender).Text;
Mais moi j'utilise l'événement Click pour tout le contextmenustrip et la ca ne marche pas.C'est normal, par comparaison, si tu as un bouton sur une form et que tu mets le code dans l'événement Click de la form, il ne s'exécutera pas quand tu cliqueras sur le bouton.
foreach (ToolStripMenuItem item in contextMenuStrip1.Items) item.Click += new EventHandler(menuToolStripMenuItem_Click);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionprivate void test() { using (FtpConnection ftp = new FtpConnection(Properties.Settings.Default.ip, "", "")) { ftp.Open(); ftp.Login(); if (ftp.DirectoryExists("/dev_hdd0/GAMES")) ftp.SetCurrentDirectory("/dev_hdd0/GAMES"); foreach (var dir in ftp.GetDirectories("/dev_hdd0/GAMES")) { if (dir.Name.Length > 4) { string s = dir.Name; foreach (ToolStripMenuItem item in contextMenuStrip1.Items) item.Click += new EventHandler(contextMenuStrip1_Click); { contextMenuStrip1.Items.Add(s); } } } } }
using (FtpConnection ftp = new FtpConnection(Properties.Settings.Default.ip, "", "")) { ftp.Open(); ftp.Login(); if (ftp.DirectoryExists("/dev_hdd0/GAMES")) ftp.SetCurrentDirectory("/dev_hdd0/GAMES"); //jusqu'ici tu te connectes à ton serveur ftp et tu récupères une liste de répertoire foreach (var dir in ftp.GetDirectories("/dev_hdd0/GAMES")) { if (dir.Name.Length > 4) { string s = dir.Name; //là avec une boucle tu va parcourir ces répertoires et ne traiter que ceux dont la taille dépasse 4 caractères foreach (ToolStripMenuItem item in contextMenuStrip1.Items) item.Click += new EventHandler(contextMenuStrip1_Click);//maintenant tu abonnes des objets que tu n'as pas encore créé. { contextMenuStrip1.Items.Add(s);//et maintenant tu ajoutes tes menus. }
foreach (var dir in ftp.GetDirectories("/dev_hdd0/GAMES")) { if (dir.Name.Length > 4) { ToolStripMenuItem nouveau = new ToolStripMenuItem(dir.Name);//je crée un menu avec le nom du répertoire contextMenuStrip1.Items.Add(nouveau);//j'ajoute le menu au contextmenu nouveau.Click+= new EventHandler(menuToolStripMenuItem_Click);//j'abonne ce menu à la bonne méthode, pas la meme que le click du contexte menu, sinon ça plantera à nouveau } }
(menuToolStripMenuItem_Click)
foreach (var dir in ftp.GetDirectories("/dev_hdd0/GAMES")) { if (dir.Name.Length > 4) { ToolStripMenuItem nouveau = new ToolStripMenuItem(dir.Name);//je crée un menu avec le nom du répertoire contextMenuStrip1.Items.Add(nouveau);//j'ajoute le menu au contextmenu nouveau.Click += new EventHandler(contextMenuStrip1_Click);//j'abonne ce menu à la bonne méthode, pas la meme que le click du contexte menu, sinon ça plantera à nouveau } }
string monTexte = ((ToolStripMenuItem)sender).Text;dans la méthode que tu as abonné.
foreach (var dir in ftp.GetDirectories("/dev_hdd0/GAMES")) { if (dir.Name.Length > 4) { ToolStripMenuItem nouveau = new ToolStripMenuItem(dir.Name);//je crée un menu avec le nom du répertoire contextMenuStrip1.Items.Add(nouveau);//j'ajoute le menu au contextmenu nouveau.Click += new EventHandler(contextMenuStrip1_Click);//j'abonne ce menu à la bonne méthode, pas la meme que le click du contexte menu, sinon ça plantera à nouveau string monTexte = ((ToolStripMenuItem)sender).Text; MessageBox.Show(monTexte); } }
private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { string monTexte = ((Control)sender).Text; MessageBox.Show(monTexte); }
string test = ((ToolStripMenuItem)sender).Text; MessageBox.Show(test);
string[] noms = { "nom 1", "nom 2", "nom 3" }; foreach (string n in noms) { ToolStripMenuItem nouveau = new ToolStripMenuItem(n); contextMenuStrip1.Items.Add(nouveau); nouveau.Click += new EventHandler(menuToolStripMenuItem_Click); }
private void menuToolStripMenuItem_Click(object sender, EventArgs e) { string monTexte = ((ToolStripMenuItem)sender).Text; MessageBox.Show(monTexte); }