2013-04-06 129 views
0

我有這個代碼,它爲我動態地創建一些文本字段。 k取自用戶btw。如何使用動態創建的文本字段的文本屬性?

 for (int i = 0; i < k; i++) 
     { 
      TextBox t1 = new TextBox(); 
      t1.Parent = groupBox2; 
      t1.Left = textBox2.Left; 
      t1.Top = textBox2.Top + (i + 1) * 40; 
      t1.Name = "text" + (i + 1); 
      t1.Enabled = true; 
      groupBox2.Controls.Add(t1); 
     } 

我想要做的是,這個創造階段完成後,當用戶按下groupbox2的「確定」按鈕,我想借此創建文本框的文本屬性,但到目前爲止,我不知道這怎麼能做到,因爲我給了textfields一個名字,我試過了,但是沒有成功。

private void button3_Click(object sender, EventArgs e) 
    { 
     node1.name = textBox2.Text; 

     for (int i = 0; i < k; i++) 
     { 
      node1.array[i] = Convert.ToInt32("text"+(i+1).Text); 
     } 
    } 

任何幫助將很好,謝謝。

回答

1

遍歷groupBox1你的文本框,並得到他們的名字,試試這個:

List<string> TextBoxesName=new List<string>(); 
      foreach (Control item in groupBox1.Controls) 
      { 
       if (item is TextBox) 
       { 
        TextBoxesName.Add((item as TextBox).Text); 
       } 
      } 
0

設置爲動態texboxes ID比你可以做groupBox2.FindControl("dynamic_texbox_id")讓你的文本框

0

最簡單的辦法是把你的列表框某種

List<ListBox> listboxes = new List<ListBox>(); 

for (...) 
{ 
... 
listboxes.add(listbox); 

} 

的話可以參考後面的集合他們每當你想要

或者因爲你將它們添加到組框,爲什麼不通過收集去了?

2

試試這個方法:

private void button3_Click(object sender, EventArgs e) 
{ 
    node1.name = textBox2.Text; 
    for (int i = 0; i < k; i++) 
    { 
     TextBox txtBox = (TextBox)groupBox2.FindControl("text" + (i + 1)); 
     if (txtBox != null) 
     { 
      node1.array[i] = txtBox.Text; 
     } 
    } 
}