文本框.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
的一些属性,但在这一点上,任何东西都会受到赞赏。
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);
}
}