0

在我的 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会引用任何称为函数的东西,但显然不是。如何设置调用该函数的文本框的值?

4

2 回答 2

3

函数的 sender 参数是引发事件的控件。

((TextBox)sender).Text = ...
于 2014-07-30T19:27:45.740 回答
2

this.Text这里指的是Form包含的标题TextBox。你应该把它改成

((TextBox) sender).Text = f.Oven;
于 2014-07-30T19:28:54.803 回答