C#自定义控件、用户控件、动态加载菜单按钮

发布时间:2020-04-12 22:50:48.177编辑:佚名阅读(193)

一、效果图,动态加载5个菜单按钮;

二、实现方法

1、创建用户控件

2、在用户控件拖入toolStrip

3、进入用户控件的Lood事件,这里自动添加5个选  ToolStripMenuItem,后期大家自己可以扩展这个方法。  

自定义控件效果图:

        /// <summary>
        /// 控件加载事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LanMenu_Load(object sender, EventArgs e)
        {
            for (int i = 0; i <5; i++)
            {
                ToolStripMenuItem Nbi = new ToolStripMenuItem();
                Nbi.Text ="测试"+i;
                Nbi.Name ="TStest"+i;//按钮名称  
                Nbi.Click += Nbi_Click;
                this.toolStrip1.Items.Add(Nbi);
            }
        }
        /// <summary>
        /// ToolStripMenuItem 动态添加的 每个按钮的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Nbi_Click(object sender, EventArgs e)
        {
            if (UserControlMenuItemClick != null)
                UserControlMenuItemClick(sender, e);
        }

4、定义委托和事件

        //定义事件
        public event StripMenuItemClick UserControlMenuItemClick;
        //定义委托
        public delegate void StripMenuItemClick(object sender, EventArgs e);

5、将自定义控件拖到窗体里面效果图:

这些测试按钮,是在第三点的时候添加的,后期可以不要第3点的添加按钮的方法,可以设计数据库,或者其他文件里面读取数据,自动添加按钮。

6、自定义控件里面的每一个按钮的点击事件,在自定义控件属性事件里面找到我们定义的控件,双击进入。

编辑代码: 

        /// <summary>
        /// 自定义控件里面的按钮的点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lanMenu1_UserControlMenuItemClick(object sender, EventArgs e)
        {
            //获取当前点击的是自定义控件里面的哪一个按钮
            ToolStripMenuItem Nbi = (ToolStripMenuItem)sender;
            //弹出按钮的名称、按钮上面的文本
            MessageBox.Show(Nbi.Name + ":" + Nbi.Text);
        }

7、最终显示效果:

点击“测试0按钮”

点击“测试1按钮”

 

程序源码下载

自定义用户控件动态添加按钮.zip


  关键字:C#自定义控件用户控件动态加载菜单按钮


鼓掌

0

正能量

0

0

呵呵

0


评论区