Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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# 如何在Windows应用程序中按名称动态创建ToolStripMenuItem?_C#_.net_Windows_Winforms - Fatal编程技术网

C# 如何在Windows应用程序中按名称动态创建ToolStripMenuItem?

C# 如何在Windows应用程序中按名称动态创建ToolStripMenuItem?,c#,.net,windows,winforms,C#,.net,Windows,Winforms,表格2: 如何在表单上查找apProposToolStripMenuItem?我试图删除一个特定的ToolStripMenuItem,但它不起作用,我找不到apProposToolStripMenuItem 表格1: private ToolStripMenuItem mHelp; private ToolStripMenuItem apProposToolStripMenuItem; public void intializecomponent() { this.mHelp = new Too

表格2:

如何在表单上查找apProposToolStripMenuItem?我试图删除一个特定的
ToolStripMenuItem
,但它不起作用,我找不到
apProposToolStripMenuItem

表格1:

private ToolStripMenuItem mHelp;
private ToolStripMenuItem apProposToolStripMenuItem;
public void intializecomponent()
{
this.mHelp = new ToolStripMenuItem();
      this.contentsToolStripMenuItem = new ToolStripMenuItem();
      this.apProposToolStripMenuItem = new ToolStripMenuItem();
     this.mHelp.DropDownItems.AddRange(new ToolStripItem[2]
          {
            (ToolStripItem) this.contentsToolStripMenuItem,
            (ToolStripItem) this.apProposToolStripMenuItem
          });
          this.mHelp.Name = "mHelp";
          this.mHelp.Size = new Size(44, 20);
          this.mHelp.Text = "Help";
          this.contentsToolStripMenuItem.Name = "contentsToolStripMenuItem";
          this.contentsToolStripMenuItem.Size = new Size(122, 22);
          this.contentsToolStripMenuItem.Text = "Contents";
          this.contentsToolStripMenuItem.Click += new EventHandler(this.contentsToolStripMenuItem_Click);
          this.apProposToolStripMenuItem.Image = (Image) componentResourceManager.GetObject("apProposToolStripMenuItem.Image");
          this.apProposToolStripMenuItem.Name = "apProposToolStripMenuItem";
          this.apProposToolStripMenuItem.Size = new Size(122, 22);
          this.apProposToolStripMenuItem.Text = "About";
          this.apProposToolStripMenuItem.Click += new EventHandler(this.apProposToolStripMenuItem_Click);
    this.Load += new EventHandler(this.DocumentSpace_Load);
}

您可以按如下所示的名称将其删除:

ToolStripMenuItem mi = new ToolStripMenuItem("apProposToolStripMenuItem") { Name = "About" };
mi.DropDownItems.RemoveByKey("About");
mHelp.DropDownItems.RemoveByKey("apProposToolStripMenuItem");
您也可以直接将其删除,如下所示:

ToolStripMenuItem mi = new ToolStripMenuItem("apProposToolStripMenuItem") { Name = "About" };
mi.DropDownItems.RemoveByKey("About");
mHelp.DropDownItems.RemoveByKey("apProposToolStripMenuItem");

假设您可以访问表单上的
MenuStrip
ToolStrip
,则可以使用扩展方法查找所有项,而不管其在菜单层次结构中的位置及其父项。例如:

var about = mHelp.DropDownItems["apProposToolStripMenuItem"]
mHelp.DropDownItems.Remove(about);

谢谢兄弟。。但是mHelp是第二种形式,首先我在第一种形式中得到了mHelp如何?在你的代码中,
mHelp
是私有的。您必须将其公开,然后通过对
Form2
的引用访问它。