如何在“ContextMenu”
中获取所选项目 ContextMenu popUpMenu;
private void Form1_Load(object sender, EventArgs e)
{
// build the outputList context menu
popUpMenu = new ContextMenu();
popUpMenu.MenuItems.Add("Item 1", new EventHandler(popUpMenu_Click));
popUpMenu.MenuItems.Add("Item 2", new EventHandler(popUpMenu_Click));
popUpMenu.MenuItems.Add("-");
popUpMenu.MenuItems.Add("Item 3", new EventHandler(popUpMenu_Click));
popUpMenu.MenuItems.Add("-");
popUpMenu.MenuItems.Add("Item 4", new EventHandler(popUpMenu_Click));
notifyIcon1.ContextMenu = popUpMenu;
}
// this sample works
private void popUpMenu_Click(object sender, EventArgs e)
{
string popUpMenu_txt = sender.ToString();
popUpMenu_txt = popUpMenu_txt.Remove(0, 53);
switch (popUpMenu_txt)
{
case "Item 2":
{
MessageBox.Show("Item 2");
}
break;
}
}
// and this one not? anyone knows what is wrong with this, and how to fix it?
private void popUpMenu_Click(object sender, EventArgs e)
{
switch (popUpMenu.MdiListItem.MdiListItem.Text)
{
case "Item 2":
{
MessageBox.Show("Item 2");
}
break;
}
}
答案 0 :(得分:1)
您不需要所有这些东西来检测已按下哪个菜单项, 试试这个片段
var pressedMenuItem = sender as MenuItem;
string popUpMenu_txt = pressedMenuItem.Text;
switch (popUpMenu_txt)
{
case "Item 2":
{
MessageBox.Show("Item 2");
}
break;
}
对于你说的第二个代码,你应该使用popUpMenu.MenuItems
答案 1 :(得分:0)
void popUpMenu_Click(object sender, EventArgs e)
{
MenuItem selected = (MenuItem)sender;
...
}
答案 2 :(得分:0)
如果您想根据菜单项执行某些操作,可以这样做。
private void popUpMenu_Click(object o, EventArgs e)
{
string t = (o as MenuItem).Text;
MessageBox.Show(t);
}