13

我有一个每 5 秒重新生成一次的字符串列表。我想创建一个上下文菜单并使用此列表动态设置其项目。问题是我什至不知道如何做到这一点并为生成的每个项目管理 Click 操作(应该使用具有不同参数 DoSomething("item_name") 的相同方法)。

我该怎么做?

谢谢你的时间。最好的祝福。

4

2 回答 2

21

因此,您可以使用以下命令从上下文菜单中清除项目:

myContextMenuStrip.Items.Clear();

您可以通过调用添加项目:

myContextMenuStrip.Items.Add(myString);

上下文菜单有一个 ItemClicked 事件。您的处理程序可能如下所示:

private void myContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    DoSomething(e.ClickedItem.Text);
}

对我来说似乎工作正常。如果我误解了你的问题,请告诉我。

于 2008-10-22T12:15:49.723 回答
1

ToolStripMenuItem使用对象的另一种选择:

//////////// Create a new "ToolStripMenuItem" object:
ToolStripMenuItem newMenuItem= new ToolStripMenuItem();

//////////// Set a name, for identification purposes:
newMenuItem.Name = "nameOfMenuItem";

//////////// Sets the text that will appear in the new context menu option:
newMenuItem.Text = "This is another option!";

//////////// Add this new item to your context menu:
myContextMenuStrip.Items.Add(newMenuItem);


在您的ItemClicked事件中myContextMenuStrip,您可以检查选择了哪个选项(基于菜单项的名称属性

private void myContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    ToolStripItem item = e.ClickedItem;

    //////////// This will show "nameOfMenuItem":
    MessageBox.Show(item.Name, "And the clicked option is...");
}
于 2017-01-25T11:49:25.590 回答