C# ContextMenuStrip 动态添加子项

如图:我想要用代码在菜单的"e"子项中再插入一个子项"h"可是我用ContextMenuStrip.Items["a"].点不出另一个Item[]了,怎样才能访问到Con... 如图:

我想要用代码 在菜单的"e"子项中再插入一个子项"h"

可是我用ContextMenuStrip.Items["a"].
点不出另一个Item[]了,怎样才能访问到ContextMenuStrip->a->e 这个项并且调用add方法添加 "h" 呢?

解决了追加分
展开
 我来答
dkxpsg
推荐于2018-05-07 · TA获得超过1627个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1043万
展开全部

你需要把ToolStripMenuItem强制转换为ToolStripDropDownItem类型才能添加子项,其实你自己看看Form1.Designer.cs里设计器自动生成的代码就会明白了,方法如下

        private void button1_Click(object sender, EventArgs e)

        {

            ((ToolStripDropDownItem)(((ToolStripDropDownItem)contextMenuStrip1.Items["aToolStripMenuItem"]).DropDownItems["eToolStripMenuItem"])).DropDownItems.Add(new ToolStripMenuItem("h"));

            //或者

            ToolStripDropDownItem ts = ((ToolStripDropDownItem)contextMenuStrip1.Items["aToolStripMenuItem"]);

            ts = ((ToolStripDropDownItem)ts.DropDownItems["eToolStripMenuItem"]);

            ts.DropDownItems.Add(new ToolStripMenuItem("h"));

        }

hypoint
2009-10-30 · 超过32用户采纳过TA的回答
知道答主
回答量:175
采纳率:0%
帮助的人:110万
展开全部
看代码,最后放在InitializeComponent()中
添加一个菜单的代码:

this.ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem2;
private System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem3;
this.ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem1});
this.ToolStripMenuItem.Name = "ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(23, 20);
this.ToolStripMenuItem.Text = "A";//第一级
this.ToolStripMenuItem1.Click += new System.EventHandler(this.ToolStripMenuItem1_Click)

this.工ToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem2});
this.ToolStripMenuItem1.Name = "ToolStripMenuItem1";
this.ToolStripMenuItem1.Size = new System.Drawing.Size(152, 22);
this.ToolStripMenuItem1.Text = "B";//第二级
this.ToolStripMenuItem2.Click += new System.EventHandler(this.ToolStripMenuItem2_Click)

this.ToolStripMenuItem2.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem3});
this.ToolStripMenuItem2.Name = "ToolStripMenuItem2";
this.ToolStripMenuItem2.Size = new System.Drawing.Size(152, 22);
this.工ToolStripMenuItem2.Text = "C";//第三级
this.ToolStripMenuItem3.Click += new System.EventHandler(this.ToolStripMenuItem3_Click)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
历又
2009-10-26 · TA获得超过299个赞
知道小有建树答主
回答量:726
采纳率:100%
帮助的人:450万
展开全部
解决了吗??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友331112cc1
2009-10-30 · TA获得超过1310个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:432万
展开全部
郁闷啊..简单的问题总是这么多人来抢..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式