在我的C#程序中,我有一堆自动生成的文本框。在这些文本框中,我添加了一个单击事件,该事件启动带有三个下拉框的表单。用户为每个框选择一个值后,单击“确定”,该值将放在文本框中。
截至目前,点击事件触发正常,对话框出现。但是,单击“确定”后,数据永远不会放在文本框中。这是我的点击事件。
private void clickTextBox(object sender, EventArgs e)
{
//MessageBox.Show(connectString + " " + unit);
frmPickOven f = new frmPickOven(connectString, unit);
if (f.ShowDialog() == DialogResult.Cancel)
{
return;
}
else
{
this.Text = "";
Console.WriteLine("Before: " + this.Text);
this.Text = f.Oven;
Console.WriteLine("After: " + this.Text);
}
}
Before:
始终为空白。
After:
显示新值,但该值未写入文本框。
我刚刚意识到该值正在写入表单的标题。我以为this
会引用任何称为函数的东西,但显然不是。如何设置调用函数的文本框的值?
答案 0 :(得分:3)
该函数的sender参数是引发事件的控件。
((TextBox)sender).Text = ...
答案 1 :(得分:2)
this.Text
此处指的是包含Form
的{{1}}的标题。你应该把它改成
TextBox