2011-02-08 120 views
0

你好全部 我真的需要你的幫助,我在大學的最後一個項目
我必須製作矩陣的文本框,用戶可以選擇它的大小 但我不知道我創建它後我如何引用文本框所以我可以做計算 ,我該如何改變類型。 ,這是我提出來獲得在運行時的文本框代碼 我希望你幫我 C#代碼如何從動態文本框中獲取值?

private void button1_Click(object sender, EventArgs e) 
    { 

     //TextBox tb = new TextBox(); 

     int y = 10; 
     row = Convert.ToInt32(textBox1.Text); 
     int col = row; 
     //string []a = new string[row]; 
     int count = 0; 
     int sum; 
     for (int i = 0; i < row; i++) 
     { 
      int x = 10; 

      for (int j = 0; j < col; j++) 
      { 
       t = new TextBox(); 
       t.Size = new Size(50, 20); 
       t.Name = "tb" + count; 
       count++; 
       t.Location = new Point(x, y); 
       t.Visible = true; 


       //t.GetType(); 
       //a[row] = t.Text; 

       Controls.Add(t); 
       x = x + 70; 
       //t.Text =Convert.ToDecimal(t.Text); 
       //Convert.ToDecimal(t.Text); 
       if (t.Name == "tb1") 
        t.Text = "10"; 
      } 
      y = y + 25; 
     } 

回答

1

保持一個參考各TextBox(你可以將其存儲在一個二維數組爲例):

// Defined at the Form level 
private TextBox[,] textBoxes = new TextBox[10, 10]; 

... 

// When creating the TextBox 
t = new TextBox(); 

... 

// Store the reference 
textBoxes[i, j] = t; 

... 

以後就可以得到價值:

var text = textBoxes[row, col].Text; 
+0

非常感謝你,我希望你更新我的網頁,如果我有其他問題 – user607631 2011-02-08 06:17:28

1

名稱添加到您的新插入文本框:

t.Name = "dynamicTextBox" + i.ToString(); 

之後,你可以簡單地通過它的名稱來訪問它:

this.Controls["dynamicTextBox0"].Text = "my text"; 

這避免了需要額外的數組來保存動態創建文本框。

0

嘗試此,

文本框T =(文本框)控制[ 「TB」 + count.ToString()]

的contorl的name屬性變爲控制集合中的密鑰。

另外你可以檢查Controls.ContainsKey(「TB」 + count.ToString())生存

相關問題