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


    一、效果图,动态加载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按钮”

               

    程序源码:下 载 地 址

    我的TB地址:https://shop115363898.taobao.com/?spm=a313o.7775905.1998679131.d0011.NJTv4h

  • 相关阅读:
    keepalived排错
    shell脚本记录
    mysql(mariadb)主从配置
    添加硬盘设备
    天数
    centos7网络配置总结
    Keepalibed监控nginx
    zabbix安装
    基于JWT的web api身份验证及跨域调用
    C# webapi 权限验证
  • 原文地址:https://www.cnblogs.com/lanyubaicl/p/5691293.html
Copyright © 2020-2023  润新知