方法1:使用公共数据,比如,把第2、1个窗体的实例公布。 public static Form2 gForm2 = new Form2(); public static Form1 gForm1 = new Form1(); 这样,可以自由访问他们。 不推荐。方法2:传递控制权。比如,让Form3控制Form2,From2 控制Form1 class Form3{ public Form2 _Form2; } class Form2{ public Form1 _Form1; }你只需要把对象传递进取就可以了。比如: class Form1{ Form2 _Form2; Form3 _Form3; public Form1(){ _Form2 = new Form2(); _Form2._Form1 = this; _Form3 = new Form3(); _Form3._Form2 = this._Form2; } } 仍然不推荐。
要操作子窗体,可以给子窗体设一个标识(key之类的东西) 简单的方法可以给子窗体实现同一个接口。 public interface IMdiForm { string key {get;} } public Form form1 : Form , IMdiForm { public string key { get{return "key1";} } } 父窗体里用 foreach ( IMdiForm imdi in this.MdiChildren) { ((Form)imdi).close(); }子窗口调你窗口很简单this.mdiparent 就行了。 只要能操作各个窗口,交换数据就很轻松了。
public static Form2 gForm2 = new Form2();
public static Form1 gForm1 = new Form1();
这样,可以自由访问他们。
不推荐。方法2:传递控制权。比如,让Form3控制Form2,From2 控制Form1
class Form3{
public Form2 _Form2;
} class Form2{
public Form1 _Form1;
}你只需要把对象传递进取就可以了。比如:
class Form1{
Form2 _Form2;
Form3 _Form3; public Form1(){
_Form2 = new Form2();
_Form2._Form1 = this; _Form3 = new Form3();
_Form3._Form2 = this._Form2;
} }
仍然不推荐。
简单的方法可以给子窗体实现同一个接口。
public interface IMdiForm
{
string key {get;}
}
public Form form1 : Form , IMdiForm
{
public string key
{
get{return "key1";}
}
}
父窗体里用
foreach ( IMdiForm imdi in this.MdiChildren)
{
((Form)imdi).close();
}子窗口调你窗口很简单this.mdiparent 就行了。
只要能操作各个窗口,交换数据就很轻松了。
子窗口调父窗口很简单this.mdiparent 就行了。
然后 form1.txtBox1.Text =""