我的问题是: 首先打开主窗体,有一个打开Child窗体的按钮。我使用Constructor,我想从Child表单返回一个字符串到Main表单上的文本框,现在我的代码是:
Form1 f = new Form1(txt1.Text);
f.Show();
但是,一个新的主表单将打开,字符串不会填写第一个主表单。 那么如何只使用一种主要形式?
答案 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();