zoukankan      html  css  js  c++  java
  • C#控件数组批量生成控件

    在编写C#窗体应用程序的时候,有时候需要生成好多个功能相似的同一种控件(比如数字键盘按键、单选框等),这时候使用窗体编辑器,费时费力,不便于修改。因此可以采用批量生成控件的形式。

    以批量生成按钮为例

    Button[] bnt = new Button[16];
    

    使用代码批量生成。
    需要注意坐标是相对于父容器而言的,如果要在groupbox中生成,需要指定父容器(推荐)

    for(int i = 0; i < 16; i++)
    { 
        //实例化
        bnt[i] = new Button();
        //定义控件名称
        bnt[i].Name = "bntton_"+i.ToString();
        //定义text属性,可以用string数组初始化为指定值
        bnt[i].Text = i.ToString();
        //注:如果不指定父容器,则坐标是相对于主窗体的
        bnt[i].Parent = groupBox1;
        //定义坐标
        bnt[i].Location = new Point(20+(i%4)*50,20+(i/4)*50);
        //调整大小
        //bnt[i].AutoSize = true;
        bnt[i].Size = new Size(50,50);
        //批量添加事件
        bnt[i].Click+= new EventHandler( bntton_Click);
    }
    

    为他们统一编写点击事件,sender即为触发该事件的控件对象,使用类型转换为Button。
    此时如果我点击了Button_7
    则((Button)sender)等同于Button_7

    //Sender为触发对象
    private void bntton_Click(object sender, EventArgs e)
    {
        MessageBox.Show("点击了 "+((Button)sender).Name.ToString());
    }
    
    

  • 相关阅读:
    Centos 8 部署harbor 访问502
    selenium学习记录
    shell基础
    抓取人民日报
    caffe在笔记本ubuntu10.04 64位下的无GPU安装
    【转】HMM
    typedef 的一些用法
    j2ee 使用tomcat开发网站需要访问中文名的资源遇到的问题解决方案。。
    解决lex.yy.c文件在vs2012下编译生成exe
    python学习
  • 原文地址:https://www.cnblogs.com/velscode/p/10142640.html
Copyright © 2011-2022 走看看