1.首先要实例化几个ToolStripItem(要为某一父菜单添加几个子菜单就实例化几个);方法如下:
/*添加子菜单*/ ToolStripItem ts_1 = new ToolStripMenuItem("正常");
2.将其添加到ContextMenuStrip
((ToolStripDropDownItem)(contextMenuStrip1.Items[1])).DropDownItems.Add(ts_1);
按上面这个模式可以添加多级的。写到这里,还是不知道怎么响应子菜单的执行。这个时候就要借住委托和事件了
3.其实,在实例化后ToolStripItem后要为实例化的ToolStripItem对象添加新的事件,然后再添加到ContextMenuStrip控件。
代码如下:
ts_1.Click+=new EventHandler(ts_1_Click);
4.接下来就是完成ts_1_Click这个方法了。当子菜单被单击的时候将会响应现在这个新方法。代码如下:
/*添加的"正常"子菜单Click事件*/ private void ts_1_Click(object sender, EventArgs e) { /*当添加的这个子菜单被单击时响应的操作写在这里面*/ }
5.如果要添加多个子菜单就要为每一个子菜单写一个Click事件。
到此此文就结束了。
加一些自己的代码以便参考:
//动态添加多级子菜单 private void addContextMenuStrip() { this.contextMenuStrip1.Items.Add("修改"); this.contextMenuStrip1.Items.Add("状态"); this.contextMenuStrip1.Items.Add("删除"); /*添加子菜单*/ ToolStripItem ts_1 = new ToolStripMenuItem("正常"); ts_1.Click += new EventHandler(ts_1_Click); /*只能通过ContextMenuStrip的Item的索引为其添加子菜单,通过Item的Text属性会报错*/ ((ToolStripDropDownItem)(contextMenuStrip1.Items[1])).DropDownItems.Add(ts_1); ToolStripItem ts_2 = new ToolStripMenuItem("维修"); ts_2.Click += new EventHandler(ts_2_Click); ((ToolStripDropDownItem)(contextMenuStrip1.Items[1])).DropDownItems.Add(ts_2); ToolStripItem ts_3 = new ToolStripMenuItem("建设中"); ts_3.Click += new EventHandler(ts_3_Click); ((ToolStripDropDownItem)(contextMenuStrip1.Items[1])).DropDownItems.Add(ts_3); } /*子菜单Click事件*/ private void ts_1_Click(object sender, EventArgs e) { ToolStripItem item = (ToolStripItem)sender; MessageBox.Show(item.Text); } /*子菜单Click事件*/ private void ts_2_Click(object sender, EventArgs e) { ToolStripItem item = (ToolStripItem)sender; MessageBox.Show(item.Text); } /*子菜单Click事件*/ private void ts_3_Click(object sender, EventArgs e) { ToolStripItem item = (ToolStripItem)sender; MessageBox.Show(item.Text); }