C# textBox.Text 不在 TabControl 中返回值

C# textBox.Text not returning a value inside a TabControl

已解决:在对我的代码进行 root 后,它似乎在第一个文本框填充后开始读取其他文本框,然后什么都不做,填充其他文本框,因为它在插入实际数据之前读取了它们。我通过确保我的函数仅在给定点之后运行来修复它。感谢所有回答的人! :)

问题: 我在我的项目中遇到了一些障碍。找不到与此类似的问题。 我正在使用 Visual Studio 2010 并使用 Windows 表单应用程序在 C# 中编写。 我有一个带有 2 个选项卡的 TabControl 容器的表单,每个选项卡内有一些文本框。

我可以将我想要的数据写入这些文本框。 但是我无法从它们读取数据(Returns 一个空结果)(注意:我可以在项目其他区域周围的文本框中读取和写入)。

我已经将范围缩小到它们位于 TabControl 容器中的选项卡内 因为我在这个容器外的同一个表单上有一个文本框,我可以读取和写入文本框。

任何人都可以提供示例代码行以从 TabControl 容器内的文本框中读取或解释我做错了什么或我应该寻找什么吗? 尝试阅读时我应该专注于特定 tabs/textBoxes 吗? (又名 "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 中成功提取的字符串值,我最初将其放入这些文本框,因此在我尝试读取之前这些文本框确实有一个值他们)。文本框不是 drawn/created.

欢迎所有评论! -戴夫。

您可以像下面这样直接访问它。无需指定选项卡控件名称或索引。顺便说一句,您不应该创建两个具有相同名称的文本框。您在哪个选项卡中并不重要。

字符串 txtvalue = textBox1.Text

检查您的文本框文本是否已实际初始化。如果该函数在文本框被填充之前触发,那么您将得到一个空值。我过去遇到过问题,在尝试读取组件之前,父控件(在你的情况下是选项卡控件)没有完全初始化基本上是一个时间问题。

试试这个从您的配置文件中获取值。

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