>>1.如果实现每一个子窗口Form2,Form3,Form4只有一个实例? //比如打开Form2
foreach(Form f in this.MdiChildren)
{
if (f is Form2)
{
f.Activate();
}
else
{
Form2 f2 = new Form2();
f2.MdiParent = this;
f2.Show();
}
}
其他的也用类似的方法,先判断,再打开.>>2.父窗口和子窗口如何相互访问?访问父窗体.
Form1 f = this.MdiParent as Form1;
if (f != null)
{
//f就是父窗体的一个实例
}
访问子窗体
foreach(Form f in this.MdiChildren)
{
Form2 f2 = f as Form2;
if (f2 != null)
{
//f2就是Form2的一个实例
}
}>>3.子窗口和子窗口之间如何相互访问?
方法同2中,父窗体访问子窗体一样.要注意的是,被访问的方法和属性或者是成员,要设置合适的访问权限(public或者internal等等)