[問題] 關於動態產生TextBox並加總數值
現在在做一個小題目是:
先建立一個textbox1輸入一個數字n,按下button1後會動態建立n個textbox,然後
再那n個textbox輸入數值,最後按下button2做加總計算顯示在textbox2
現在碰到一個問題,button1的工作竟是要動態建立textbox,程式碼如下:
txt_new = new TextBox[int.Parse(textBox1.Text)];
for (int i = 0; i < int.Parse(textBox1.Text); i++)
{
txt_new[i] = new TextBox();
txt_new[i].Location = new Point(30, 40 + 30 * i);
txt_new[i].Height = 20;
txt_new[i].Width = 80;
txt_new[i].Visible = true;
Controls.Add(txt_new[i]);
}
以上,第一次執行都沒有問題,但當我第二次按下button1時就會發生幾個問題
1.第一次產生五個textbox,第二次只產生兩個,畫面依然顯示五個textbox
2.第一次產生兩個,第二次產生四個,產生出來的四個textbox都有數字,但加總
只會計算到新的textbox,第一次就產生出來的textbox就不會被計算到。
可以指點一下這是什麼原因嘛?
另外我自己用了一個很笨的方式,先宣告初一個全域bool變數,用來判斷是否有
點選過button1產生textbox,有的話,就先用foreach把產生的txt_new陣列的
textbox全部都先Dispose(),然後再重新產生出來,雖然就可以克服我上面那兩
點問題,但總覺得好像不是這樣作法?是不是有比較標準的方式??
先謝謝各位的指教。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.239.120
→
10/20 02:10, , 1F
10/20 02:10, 1F
→
10/20 02:23, , 2F
10/20 02:23, 2F
→
10/20 11:03, , 3F
10/20 11:03, 3F
→
10/20 11:04, , 4F
10/20 11:04, 4F
→
10/20 11:05, , 5F
10/20 11:05, 5F
→
10/20 11:06, , 6F
10/20 11:06, 6F