Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从ToopStripMenuItem动态删除项目_C#_Winforms - Fatal编程技术网

C# 从ToopStripMenuItem动态删除项目

C# 从ToopStripMenuItem动态删除项目,c#,winforms,C#,Winforms,如何动态删除ToolStripMenu项。我有两个事件,一个用于添加名称,另一个用于删除名称。添加名称很有效。移除不需要。调试remove时,我可以在DropDownItems中看到{Poco}。但是,当我调用remove时,它不会被删除 // Adding items works as expected ToolStripMenuItem mi = new ToolStripMenuItem("Poco"); mi.CheckOnClick = true; myToolStripMenuIte

如何动态删除ToolStripMenu项。我有两个事件,一个用于添加名称,另一个用于删除名称。添加名称很有效。移除不需要。调试remove时,我可以在DropDownItems中看到{Poco}。但是,当我调用remove时,它不会被删除

// Adding items works as expected
ToolStripMenuItem mi = new ToolStripMenuItem("Poco");
mi.CheckOnClick = true;
myToolStripMenuItem.DropDownItems.Add(mi);
我试过很多东西。。我以为这样行得通

// This does not work .. how do i fix this?
myToolStripMenuItem.DropDownItems.RemoveByKey("Poco");
删除名称的正确方法是什么?

该属性允许您按项目名称进行搜索-只要它是为对象本身设置的-因此,如果我假设无法添加重复字符串作为菜单项,则使用要随其名称一起显示的文本初始化对象应能使您稍后删除它:

ToolStripMenuItem mi = new ToolStripMenuItem("Poco"){ Name = "Poco" };
然后在进一步处理过程中,使用与您相同的代码删除它(我认为它应该可以工作):

很遗憾,我现在无法测试它,在这个Mac上没有.NET。:-)但是,我非常确定,您可以通过直接引用集合中的对象来删除()

myToolStripMenuItem.DropDownItems.Remove(myToolStripMenuItem.DropDownItems["Poco"]);

同样,很遗憾我不能马上测试一个明确的答案。

这正是我想要的+1.
myToolStripMenuItem.DropDownItems.Remove(myToolStripMenuItem.DropDownItems["Poco"]);