动态地将项目添加到上下文菜单&;设置单击操作

本文关键字:amp 设置 操作 单击 菜单 上下文 项目 添加 动态 | 更新日期: 2023-09-27 17:48:51

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

我该怎么做?

谢谢你抽出时间。顺致敬意,

动态地将项目添加到上下文菜单&;设置单击操作

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

myContextMenuStrip.Items.Clear();

您可以通过调用添加项目

myContextMenuStrip.Items.Add(myString);

上下文菜单中有一个ItemClicked事件。你的处理程序可能是这样的:

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

对我来说似乎还可以。如果我误解了你的问题,请告诉我。

使用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);


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

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...");
}