Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[C#] Text van Selected DropDownItem in ContextMenu

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste Tweakers,

Ik zit hier met een (simpel) probleempje waar ik zelf niet uit kom..

Ik ben een Form Application aan het maken met daarin een ContextMenuStrip

Bij het Form_Load event laat ik het ContextMenuStrip "vullen" door 1 ToolStripMenuItem met in dit MenuItem weer losse DropDownItems. Dit gebeurd d.m.v. een ArrayList en dit gebeurt correct!

C#:
1
2
3
4
5
6
7
8
9
10
11
12
public void Initialize_ContextStripMenu_QuickLaunch()
        {
            ToolStripMenuItem MainMenuItem_QuickLaunch = new ToolStripMenuItem("QuickLaunch");

            foreach (string itemName in objQuickLaunch.arrShortcut_Names)
            {
                ToolStripMenuItem subItem_QuickLaunch = new ToolStripMenuItem(itemName);
                MainMenuItem_QuickLaunch.DropDownItems.Add(subItem_QuickLaunch);
            }
            
            menuTray.Items.Add(MainMenuItem_QuickLaunch);  
        }


Mijn probleem is het volgende: Ik krijg het niet voor elkaar om een Click (of Close) Event te maken waarbij ik de .Text krijg van het DropDownItem dat in aanklik...

Door de DropDownItems heen loopen is geen probleem maar ik "zie" gewoon niet hoe ik een ClickEvent of CloseContextMenu event moet afhandelen om vervolgens het geklikte DropDownItem naar voren te halen... Het lukt me namelijk alleen maar om de .Text van een MenuItem te verkrijgen bij het klikken op deze:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//Form.Designer.CS
// 
// ContextMenu
// 
this.menuTray.Name = "menuTray";
this.menuTray.Size = new System.Drawing.Size(153, 26);
this.menuTray.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(ContextMenuItem_Clicked);


//Form1.cs
private void ContextMenuItem_Clicked(object sender, System.Windows.Forms.ToolStripItemClickedEventArgs e)
        {
            MessageBox.Show(e.ClickedItem.Text);            
        }


Ook heb ik het al geprobeerd met een ContextMenuClosed en DropDownClosed Event te schrijven maar ook zonder resultaat.. ben hier nou al sinds gister mee bezig en begin langzaam een beetje aan mezelf te twijfelen :P

Ik wil ook geen kant en klare code, een zetje in de goede richting zal al voldoende zijn (met de tip over de EventHandler die ik het beste kan gebruiken).

veel dank _/-\o_

Vincent

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

ContextMenuStrip.Opening event, Vervolgens geselecteerde item opvragen en je menu items opbouwen..

If it isn't broken, fix it until it is..


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 01:12
Waarom hang je geen eventhandler aan de submenuItems?

Roomba E5 te koop


Verwijderd

Topicstarter
sig69 schreef op vrijdag 24 oktober 2008 @ 10:16:
Waarom hang je geen eventhandler aan de submenuItems?
Sig69 bedankt!

Ben nog niet heel ervaren met C#.NET en had hier nog niet aan gedacht, Result:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public void Initialize_ContextStripMenu_QuickLaunch()
        {
            //MenuTray.QuickLaunch
            ToolStripMenuItem MainMenuItem_QuickLaunch = new ToolStripMenuItem("QuickLaunch");
            foreach (string itemName in objQuickLaunch.arrShortcut_Names)
            {
                ToolStripMenuItem subItem_QuickLaunch = new ToolStripMenuItem(itemName);
                MainMenuItem_QuickLaunch.DropDownItems.Add(subItem_QuickLaunch);
                subItem_QuickLaunch.Click += new EventHandler(subItem_QuickLaunch_Click); //EventHandler
             }
           menuTray.Items.Add(MainMenuItem_QuickLaunch);  
        }

 private void subItem_QuickLaunch_Click(object sender, EventArgs e)
        {
            ToolStripDropDownItem ddItem = (ToolStripDropDownItem)sender;
            MessageBox.Show(ddItem.Text);

        }


en dit werkt zoals ik wou ;)

bedankt voor jullie reacties _/-\o_