我有一个ContextMenuStrip
我在代码中创建:
ContextMenuStrip menu;
public Loader()
{
menu = new ContextMenuStrip();
menu.Items.Add("Set Complete");
menu.Items.Add("Set Review");
menu.Items.Add("Set Missing");
}
我需要添加在单击某个项目时运行的代码。到目前为止,我已经尝试过这个:
if (menu.Items[0].Selected)
{
//code
}
if (menu.Items[1].Selected)
{
//code
}
if (menu.Items[2].Selected)
{
//code
}
但是(惊讶,惊讶)它不起作用。
我想我可能需要为每个Item设置一个事件处理程序,但我不确定如何使用代码创建ContextMenuStrip
。
答案 0 :(得分:2)
您应该将事件处理程序添加到单个菜单项(Click
事件)或ContextMenuStrip本身(ItemClicked
事件)。
答案 1 :(得分:2)
您必须订阅点击事件。我已经改变了你的样本,所以它应该有效:
public Loader()
{
var menu = new ContextMenuStrip();
var menuItem = menu.Items.Add("Set Complete");
menuItem.Click += OnMenuItemSetCompleteClick;
menuItem = menu.Items.Add("Set Review");
menuItem.Click += OnMenuItemSetReviewClick;
menuItem = menu.Items.Add("Set Missing");
menuItem.Click += OnMenuItemSetMissingClick;
}
private void OnMenuItemSetCompleteClick(object sender, EventArgs e)
{
// Do something
}
private void OnMenuItemSetReviewClick(object sender, EventArgs e)
{
// Do something
}
private void OnMenuItemSetMissingClick(object sender, EventArgs e)
{
// Do something
}