zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Linux Core Dump
    ODP.NET Managed正式推出
    获取EditText的光标位置
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
  • 原文地址:https://www.cnblogs.com/lanyubaicl/p/5691293.html
Copyright © 2011-2022 走看看