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


免責聲明!

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



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