Kelp-Space 是記錄一些生活雜事的Blog
如有任何程式設計的問題歡迎到 飛特技術論壇 討論

2008-07-30

C#動態控制項陣列化

以下程式使用Label當作範例,進行控制項陣列化及動態載入控制項示範。
控制項的事件範例使用Click。
上面兩段程式碼都是對應到最下方的事件。


將Form上的控制項陣列化:
複製程式碼(Copy to clipboard)
//Form上原本就拉好的物件
//在Form上要先有label2跟label3這兩個物件
Label[] labAryB = new Label[2];
labAryB[0] = label2;
labAryB[1] = label3;
labAryB[0].Click += new EventHandler(tb_Click);
labAryB[1].Click += new EventHandler(tb_Click);

使用程式來載入控制項:
複製程式碼(Copy to clipboard)
//透過程式新增物件
Label[] labAry = new Label[3];
labAry[0] = new Label();
labAry[1] = new Label();
labAry[2] = new Label();
for (int i = 0; i != labAry.Length; i++)
{
    this.Controls.Add(labAry[i]);
    labAry[i].Text = "Test" + i;
    labAry[i].Top = labAry[i].Height * i;
    labAry[i].Click += new EventHandler(tb_Click);
}

控制項的事件:
複製程式碼(Copy to clipboard)

void tb_Click(object sender, EventArgs e) //若有人對新增的控制項Click
{
    Label srcLabel = sender as Label;

    MessageBox.Show(srcLabel.Text);  //可以透過物件的屬性來判斷,如TabIndex
}

沒有留言:

張貼留言