c#winform怎样实现动态生成控件?

  Microsoft Visual Studio 2010 窗体设计中,需要什么控件就从工具箱里拖出一个控件“挂”在窗体上。其实,窗体上的控件,不但可以“拖”,还可以用代码动态生成。动态生成控件,对需要相同的大量的控件还是比较有用的。下面小编介绍一下实现的方法,希望对广大编程爱好者有所帮助,并籍以抛砖引玉。

c#winform怎样实现动态生成控件?

工具/原料

 
  • Microsoft Visual Studio 2010

方法/步骤

 
  1.  

    打开Microsoft Visual Studio 2010

    新建解决方案,

    添加项目——动态生成控件

    c#winform怎样实现动态生成控件?
  2.  

    窗体布局

    把窗体设置合适的大小

    c#winform怎样实现动态生成控件?
  3.  

    确定控件的基本属性

    1、假设要添加15个button按钮;

    2、基本属性如下:

    Name:名称       myButton

    Text:显示文本   按钮(i)

    Size:大小          50*50

    Location:窗体位置

    c#winform怎样实现动态生成控件?
  4.  

    Location属性如何动态变化?(分析如图)

          假设要把15个按钮,每5个一行生成,那么就需要让Location属性动态变化?怎么办?

          经过分析,确定X的坐标为:50+i%5*100

    c#winform怎样实现动态生成控件?
    c#winform怎样实现动态生成控件?
  5.  

    Y的坐标如何动态确定?

    1、定义一个行变量;

    2、Y的坐标为:50+row*100

    3、增加判断换行条件:i % 5 == 0 && i != 0  

    c#winform怎样实现动态生成控件?
  6.  

    输入代码试试看?ok!运行效果如图

    c#winform怎样实现动态生成控件?
    c#winform怎样实现动态生成控件?
  7.  

    完整代码:

    namespace 设计

    {

        public partial class form1 : Form

        {

            public form1()

            {

                InitializeComponent();

            }

     

            private void form1_Load(object sender, EventArgs e)

            {

                int row = 0;

                for (int i = 0; i < 15; i++)

                {

                    if (i % 5 == 0 && i != 0)

                    {

                        row++;

                    }

                    Button btn = new Button();

                    //控件名称

                    btn.Name = "mybutton" + i.ToString();

                    //控件显示文本

                    btn.Text = string.Format("按钮{0}", i + 1);

                    //控件大小

                    btn.Size = new Size(50,50);

                    //控件位置【动态变化】

                    btn.Location = new Point(50+i%5*100,50+row*100);

                    //添加到窗体

                    this.Controls.Add(btn);

                }

            }

        }

    }

posted @ 2021-10-22 17:14  林新i  阅读(4185)  评论(0编辑  收藏  举报