2013-04-08 63 views
0

建立在我的應用程序文本框中的文字,我創建在運行時的文本框,這裏是代碼獲取通過在運行時

TextBox bt = new TextBox(); 
bt.Name = "population_textbox"; 
bt.Height = 20; 
bt.SetValue(Grid.ColumnProperty, 1); 
bt.SetValue(Grid.RowProperty, 0); 
temp_grid.Children.Add(bt); 

那麼,如何得到這個文本框的文本後用戶鍵入內容並輸入。我不知道怎麼辦呢,我試着

var tb = (FrameworkElement)this.FindName("population_textbox") as TextBox; 
Console.Write(tb.Text); 

這是錯誤警報:

Exception has been thrown by the target of an invocation. 
+0

Console.Write(((FrameworkElement的)這個.FindName(「population_textbox」)as TextBox).Text.ToString()); – zey 2013-04-08 09:15:40

+0

'temp_grid'是否有一個名爲'FindName(..)'的方法?如果是,請嘗試調用它而不是'this.FindName(..)' – 2013-04-08 09:16:12

+0

@zey:結果相同,異常已被拋出 – duykhoa 2013-04-08 09:19:23

回答

1

應聲明你的控制,然後調用RegisterName方法,使控制訪問,那麼你可以參考該控件的名稱從任何地方你的窗口範圍:

 TextBox bt = new TextBox(); 
     bt.Name = "population_textbox"; 
     bt.Height = 20; 
     bt.SetValue(Grid.ColumnProperty, 1); 
     bt.SetValue(Grid.RowProperty, 0); 
     temp_grid.Children.Add(bt); 
     this.RegisterName(bt.Name, bt); 


     var tb = this.FindName("population_textbox") as TextBox; 
     Console.Write(tb.Text); 
2

我寫一個簡單的例子給你:

TextBox bt = new TextBox(); 
      bt.Name = "population_textbox"; 
      bt.Text = "some"; 
      bt.Height = 20; 
      main_Grid.Children.Add(bt); 
      foreach (TextBox txt in main_Grid.Children) 
      { 
       if (txt is TextBox) 
       { 
        if ((txt as TextBox).Name == "population_textbox") 
        { 
         MessageBox.Show((txt as TextBox).Text); 
        } 
       } 
      } 
1

使用以下代碼:

this.RegisterName("bt", textBox); 

也可以嘗試:

var tb = (FrameworkElement)this.FindName("population_textbox"); 

或直接寫信:

TextBox bt = new TextBox(); 
bt.Name = "population_textbox"; 
bt.Height = 20; 
bt.SetValue(Grid.ColumnProperty, 1); 
bt.SetValue(Grid.RowProperty, 0); 
temp_grid.Children.Add(bt); 
Console.Write(bt.Text); 

[沒有考慮它在結核病變種。

這用於從文本框的文本中獲取文本的值,該文本的值被賦值爲運行時。

+0

你能給我一個完整的小例子嗎?我是一個C新手# – duykhoa 2013-04-08 09:37:16

+0

@duykhoa通過我編輯的選擇。 – Freelancer 2013-04-08 09:44:09

+0

我收到此異常消息:對象引用未設置爲對象的實例。 – duykhoa 2013-04-08 09:54:58