2013-02-09 95 views
1

我有一個關於C#中的文本框的問題。我做了一個按鈕,點擊後,將創建文本框:使用動態創建的文本框中的文本

private void helloButton_Click(object sender, EventArgs e) 
    { 
     TextBox txtRun = new TextBox(); 
     TextBox txtRun2 = new TextBox(); 
     txtRun2.Name = "txtDynamic2" + c++; 
     txtRun.Name = "txtDynamic" + c++; 
     txtRun.Location = new System.Drawing.Point(40, 50 + (20 * c)); 
     txtRun2.Location = new System.Drawing.Point(250, 50 + (20 * c)); 
     txtRun2.ReadOnly = true; 

     txtRun.Size = new System.Drawing.Size(200, 25); 
     txtRun2.Size = new System.Drawing.Size(200, 25); 
     this.Controls.Add(txtRun); 
     this.Controls.Add(txtRun2); 
    } 

我怎麼能拉用戶類型爲這些新生成的文本框,使用它作爲一個不同的函數參數(其將被稱爲該文本一個不同的按鈕)?我很新,可以使用幫助。

在此先感謝。

回答

0

如果你想在其他方法中使用實例化的文本框,那麼你可以通過將它們傳遞給方法或將它們存儲爲類的成員來實現。

將它們存儲在下面的類中的示例。

public class YourForm 
{ 
    private TextBox txtRun; 
    private TextBox txtRun2; 

    private void helloButton_Click(object sender, EventArgs e) 
    { 
     txtRun = new TextBox(); 
     txtRun2 = new TextBox(); 

     // removed less interesting initialization for readability 

     this.Controls.Add(txtRun); 
     this.Controls.Add(txtRun2); 
    } 

    public void DoStuffWithTextBoxes() 
    { 
     if (txtRun != null && txtRun2 != null) 
     { 
      // Retrieve text value and pass the values to another method 
      SomeOtherMagicMethod(txtRun.Text, txtRun2.Text); 
     } 
    } 

    private void SomeOtherMagicMethod(string txtRunText, string txtRun2Text) 
    { 
     // Do more magic 
    } 
} 
1
var matches = this.Controls.Find("txtDynamic2", true); 
TextBox tx2 = matches[0] as TextBox;    
string yourtext = tx2.Text; 

這將通過名稱返回的控件數組txtDynamic2,在你的情況下,第一個是你正在尋找的,除非你創建具有相同名稱的多個控件。 這將允許您完全訪問文本框,如果你找到它。

0

你可以做到這一點很容易:

//get the text from a control named "txtDynamic" 
string text = this.Controls["txtDynamic"].Text; 

只要記住,以確保您的控件具有獨特Name財產,否則你會得到一個與指定名稱找到的第一個控件的文本。

1
var text = (TextBox)this.Controls.Find("txtDynamic2", true)[0]; 
+0

(文本框)this.Controls.Find( 「txtDynamic2」,真)(0)應爲(文本框)this.Controls.Find( 「txtDynamic2」,真)[0] – Igoy 2013-02-09 11:33:01

+0

哦..是,你甚至不給我一段時間修改? ':D' – spajce 2013-02-09 11:52:51

+1

我現在就給它,它有時會奇怪地發生:),新手! – Igoy 2013-02-09 11:56:16