- 最後登錄
- 2022-11-24
- 在線時間
- 1 小時
- 註冊時間
- 2008-9-2
- 閱讀權限
- 20
- 精華
- 0
- UID
- 4896884
- 帖子
- 541
- 積分
- 212 點
- 潛水值
- 13707 米
| 本帖最後由 rr09192084 於 2015-6-17 09:47 PM 編輯
C#沒有VB6那種複製元件可以轉成陣列的功能
但是在C#裡元件還是可以用陣列來控制的
以下我寫個範例給你參考看看- private TextBox textBox1 = new TextBox();
- private TextBox textBox2 = new TextBox();
- private TextBox textBox3 = new TextBox();
- private TextBox textBox4 = new TextBox();
- private TextBox[] textBoxes;
- public Form1()
- {
- InitializeComponent();
- textBoxes = new TextBox[] { textBox1, textBox2, textBox3, textBox4 };
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- string[] txt = { "Hello!!", "How are you?", "I am fine.", "" };
- for (int i = 0; i < 4; i++)
- {
- //要使用元件的陣列主要是為了讓這些元件可以被迴圈作統一設計、管理與指派等動作
- //如統一為元件命名
- textBoxes[i].Name = "textBox" + (i + 1).ToString();
- //統一指定文字內容
- textBoxes[i].Text = txt[i];
- //指定元件的SIZE
- textBoxes[i].Size = new System.Drawing.Size(280, 25);
- //指定位置
- textBoxes[i].Location = new System.Drawing.Point(60, (i + 1) * 50);
- //這個指令是把該元件加入到目前的視窗裡
- this.Controls.Add(textBoxes[i]);
- //指派事件處理(前3個才有)
- if (i < 3) textBoxes[i].TextChanged += new System.EventHandler(textBox_TextChange);
- }
- }
- //這個就是文字框異動指派處裡的函式
- private void textBox_TextChange(object sender, EventArgs e)
- {
- TextBox txtbtn = (TextBox)sender;
- //你可以所有文字框異動都做同一件事
- //如在第4格文字框秀出訊息
- textBoxes[3].Text = txtbtn.Name + " 內的文字被異動了!!";
- //或是個別、某些作不同的事
- switch (txtbtn.Name)
- {
- case "textBox1":
- //文字框1異動時做哪些事
- textBoxes[3].Text += " (case 1)";
- break;
- case "textBox2": case "textBox3":
- //文字框2和3異動時做哪些事
- textBoxes[3].Text += " (case 2 or 3)";
- break;
- default:
- break;
- }
- }
複製代碼 ... |
|