2015-02-09 30 views
0

解決內返回一個值在插入實際數據之前。我已經通過確保我的函數只在給定點之後運行來修復它。感謝所有回答! :)C#textBox.Text不是一個TabControl

問: 我已經打了一下道路隆起的在我的項目。找不到類似這樣的問題。 我正在使用Visual Studio 2010並使用Windows窗體應用程序在C#中編寫代碼。 我有一個帶有2個選項卡的TabControl容器的表單,每個選項卡內有少量文本框。

我可以寫我所需要的數據到這些文本框。 但我無法從它們讀取數據(返回空結果)(注意:我可以在我的項目的其他區域的文本框中讀寫)。

我已經縮小了它們在TabControl容器 中的標籤內,因爲我在此容器外部的同一個窗體上有一個文本框,並且我可以讀寫文本框。

任何人都可以提供的代碼示例行從一個文本框來讀取一個TabControl容器內或解釋什麼,我做錯了還是什麼我應該尋找? 試圖閱讀時,我應該關注特定的標籤/文本框嗎? (又名「this.tab1.textBox1.text」或「this.tab1.controls [」textBox1「]。text」)。

編輯:既然有人問代碼,它不是我的代碼的問題;它只是從文本框中獲取字符串值的問題。在同一個函數中,我可以從同一個項目中的各種文本框中檢索字符串。我曾嘗試: (注:作品上正常的文本框,而不是在容器)

this.textBox1.Text; 
this.textBox2.Text.ToString(); 
this.Container["textBox1"].Text; 

裏面的我的形式之一(位於同一形式的TabControl)我調用一個函數。該函數讀取文本框的值,然後根據其中的值執行操作。但它調用我一直在使用MessageBox.Show(textBox1.Text.ToString()); 我的代碼中發現一個空值:

private void myFunction(){//Check Values 
    if (textBox1.Text.ToString() != SomeOtherValue){//then 
     //Do appropriate action 
    }//If End 
}//MyFunction End 

(參考:「SomeOtherValue」是一個字符串值,我從App.Config中成功地拉我最初投入這些文本框,所以這些文本框在我嘗試從它們讀取之前在它們中確實具有值)。文本框不被繪製/創建。

所有評論感謝! -Dave。

+3

您需要展示您的相關代碼來演示問題 – 2015-02-09 15:13:28

+0

代碼不是問題,它試圖檢索textBox中的字符串值。 – Hughsie28 2015-02-09 15:15:43

+0

但是你應該顯示你試過的東西 – 2015-02-09 15:16:38

回答

0

檢查您的文本框中的文本實際上是初始化。如果該函數在填充文本框之前觸發,則會得到空值。在過去,在嘗試閱讀組件基本上是一個時間問題之前,父控件(您的案例中的選項卡控件)未完全初始化,我遇到過問題。

+0

我會看看這個。但據我所知,我正在寫這些價值觀,並在閱讀之前就改變它們。我會讓你知道我找到了什麼。 – Hughsie28 2015-02-09 15:52:04

+0

是的,情況正是如此。在生成我的代碼之後,似乎在第一個文本框填充它之後,開始閱讀其他文檔,然後什麼都不做。我現在修好了。非常感謝你! – Hughsie28 2015-02-09 15:58:57

+0

很高興能幫到你! – aminner 2015-02-09 16:03:40

0

您可以像下面那樣直接訪問它。無需指定選項卡控件名稱或索引。順便說一句,你不應該能夠創建兩個同名的文本框。不要緊,你是哪個選項。

串txtvalue = textBox1.Text

+0

我剛剛嘗試過(string strTest = textBox1.Text),並在消息框彈出框中顯示結果。恐怕仍然返回空值,而文本框中有一個值。另外每個文本框都有一個唯一的名稱是。 – Hughsie28 2015-02-09 15:41:45

+0

你可以提供關於如何綁定你的app.config中的文本框的細節? @ Hughsie28 – nevra 2015-02-09 15:44:00

+0

@nevra我將數據插入到文本框中使用:「This.textBox1.Text = Config.CustomName.ToString();」。 Config是一個類,「CustomName」定義爲「公共靜態字符串CustomName = ConfigurationManager.AppSettings [」keyValue「];」這是如何app.config – Hughsie28 2015-02-09 15:49:20

0

試試這個來從配置文件中獲取值。

CustomName = ConfigurationManager.AppSettings.Get("keyValue"); 
+0

我可以從配置中獲取值,這不是問題。現在解決謝謝:) – Hughsie28 2015-02-09 16:02:00