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);

                }

            }

        }

    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM