• ContextMenuStrip 动态添加多级子菜单


    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);
            }
  • 相关阅读:
    [实变函数]4.4 依测度收敛
    [实变函数]4.3 可测函数的构造
    [实变函数]4.2 Egrov 定理
    [实变函数]4.1 可测函数 (measurable function) 及其性质
    [实变函数]4.0 引言
    [实变函数]3.3 可测集类
    垂直滚动选择效果的实现
    unity模型任意无限切割插件
    微信小程序—智能小蜜(基于智能语义解析olami开放平台)
    AdPlayBanner:功能丰富、一键式使用的图片轮播插件
  • 原文地址:https://www.cnblogs.com/jiangshuai52511/p/8258611.html
Copyright © 2020-2023  润新知