C# 如何在Windows应用程序中按名称动态创建ToolStripMenuItem?
表格2: 如何在表单上查找apProposToolStripMenuItem?我试图删除一个特定的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
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
的引用访问它。