如何将字符串从子表单返回到主表单(不打开任何新表单)?

时间:2017-03-04 06:06:22

标签: c# constructor

我的问题是: 首先打开主窗体,有一个打开Child窗体的按钮。我使用Constructor,我想从Child表单返回一个字符串到Main表单上的文本框,现在我的代码是:

 Form1 f = new Form1(txt1.Text);
 f.Show();

但是,一个新的主表单将打开,字符串不会填写第一个主表单。 那么如何只使用一种主要形式?

1 个答案:

答案 0 :(得分:0)

你可以通过OpenForms获取它:

Form1 frm = Application.OpenForms.OfType<Form1>().FirstOrDefault();

确保在其Modifier属性上将控件txt1声明为public,以便您可以从子窗体中访问它:

        Form1 frm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
        frm.txt1.Text = "Change";
        frm.Show();

现在如果你试图通过它的构造函数来改变它,我怀疑你可以做它,因为它已经初始化了,除非你调用另一个新的Form1来初始化它并将再次通过它的构造函数。

您可以做的是直接更改其属性:

        Form1 frm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
        frm.stringMain = "Foo";  //Your property you want to change
        frm.txt1.Text = "Change";
        frm.Show();