文本框.Text不返回任何东西

本文关键字:任何东 返回 Text 文本 | 更新日期: 2023-09-27 17:53:32

我有一个带有选项卡控件的表单,在其中一个选项卡上,我有一个ComboBox。根据用户在此ComboBox中选择的值,需要填充不同的控件。这工作得很好,但是,当我试图检索用户放入我填充的TextBox控件中的文本时,TextBox.Text没有返回任何内容给我。当我将TextBox添加到同一表单时,TextBox.Text工作得很好,但将其包含在表单初始化中(而不是稍后使用下面的方法在表单上填充它),这使我认为我缺少控件上的属性。

  • 我不想用文本填充控件,我想要用户在运行时输入的字符串-我想使用TextBox.Text来获取该值,而不是我已经在控件中拥有的字符串值。

我用来将TextBox和其他控件填充到选项卡控件上的方法的代码片段:

private System.Windows.Forms.TextBox filePathBox;
private void populateControls(string someText)
    {
        if (someText == "Something")
        {
            // 
            // TextBox
            //
            this.filePathBox.Location = new System.Drawing.Point(6, 61);
            this.filePathBox.Name = "filePathBox";
            this.filePathBox.Size = new System.Drawing.Size(220, 20);
            this.tabPage1.Controls.Add(this.filePathBox);
            this.filePathBox.Show();
        }
        else if (someText == "SomethingElse")
        {
            //populate other controls.
        }
    }

并且,为了进行测试,我有一个按钮,它只是显示TextBox中字符串的MessageBox,这没有任何结果。

private void button2_Click(object sender, EventArgs e)
    {
        MessageBox.Show(filePathBox.Text);
    }

再次,它使我认为我错过了TextBox的一些属性,但在这一点上,任何东西都会受到赞赏。

文本框.Text不返回任何东西

change your:

this.filePathBox = new TextBox();

:

if(this.filePathBox==null)
{
    this.filePathBox = new TextBox();  
}

我想你正确初始化filePathBox在您的InitializeComponents()(表单设计器内容)所以…filePathBox。文本最初将为空。你必须在它显示某些内容之前填充内容……这样的:

filePathBox.Text = "something";
MessageBox.Show(filePathBox.Text);

我创建了一个快速示例,没有发现任何问题。确保你的构造函数调用InitializeComponents,希望这有帮助

 private System.Windows.Forms.TextBox filePathBox = new TextBox();
    public Form1()
    {
        InitializeComponent();
        PopulateControls("Something");
    }
    public void PopulateControls(string someText)
    {
        if (someText == "Something")
        {
            this.filePathBox.Location = new System.Drawing.Point(6, 61);
            this.filePathBox.Name = "filePathBox";
            this.filePathBox.Size = new System.Drawing.Size(220, 20);
            this.tabPage1.Controls.Add(this.filePathBox);
            this.filePathBox.Show();
        }
    }
    private void button1_Click(object sender, EventArgs e)
    {
        if (filePathBox != null)
        {
            MessageBox.Show(filePathBox.Text);
        }
    }