如何在C#中修改不同表单中的控件

时间:2013-10-10 18:29:11

标签: c# .net

有没有办法修改文本框中的文本,或者来自不同表单的类似内容?

在我的程序中,我需要生成一个新的Form2,并让所有文本框保存基于Form3中输入的内容的信息。到目前为止我只做了:

Form2 form2 = new Form2();
form2.Show();

我只是不知道如何从form3访问form2.textbox1.Text。我在网上看了一下,但找不到我想要的东西,我尝试了一些不同的东西但都没有成功。

谢谢! :)

3 个答案:

答案 0 :(得分:2)

Form2的实例传递给Form3

public Form3(Form2 referrer)
{
    var txt = referrer.TextBox1Text;
}

然后在调用时:

Form3 f3 = new Form3(this);
f3.Show();

你必须确保在Form2上构建一个属性,如下所示:

internal string TextBox1Text { get { return textBox1.Text; } }

答案 1 :(得分:1)

问题是每个表单中定义的控件不是公共对象,因此您无法从表单外部访问它们。

为什么不在每个表单中定义一个公共方法来从您需要的控件中检索/设置所需的值?

我认为这比揭露你的控件更好。

答案 2 :(得分:1)

假设您在Form3后面的代码中实例化Form2(调用“new”Form2())......

您可以在Form2中创建一个公共方法,以提供您需要的辅助功​​能。例如:

(在Form2中 - 后面的代码)

public SetTextboxTextProperty(string text)
{
    this.Textbox1.Text = text;
}

来自Form3:

Form2 form2 = new Form2();
form2.SetTextboxTextProperty("your data");
form2.Show();