例如,有两个窗体分别为Form1,Form2,Form1上有一个Button和一个TextBox,Form2上只有一个Button。先要求运行程序时先打开Form1,单击Form1上的Button打开Form2,再单击Form2上的Button在Form1的TextBox里显示一个字符串,诸如“Hello”之类的。虽然可以在Form1的Button1_Click方法中调用Form2,但是在Form2的Button1_Click方法如何写才能操作Form1呢?
并且,我发现Form1最初的加载是在Program类的Main()方法中,而且并没有给Form1对象一个显式的名字。
namespace WindowsFormsApplication1 { class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1());//这里Form1对象没有显式的名字 } } }
而且就算在Main方法中声明Form1一个显式的名字,Form2类仍然无法调用。
还是烦请各位高手相助了!
//Form2 private void button1_Click(object sender, EventArgs e) { Form1 fm1 = new Form1(); fm1 = (Form1)this.Owner; fm1.Message = "Hello!"; }
//Form1 public string Message { get { return textBox1.Text; } set { textBox1.Text = value; } } private void button1_Click(object sender, EventArgs e) { Form2 fm2 = new Form2(); fm2.Owner = this; fm2.Show(); }