visual c# 中mdi的简单问题?(100分)

H

hhcz

Unregistered / Unconfirmed
GUEST, unregistred user!
假设一个mdi程序,主窗体类有一个公共变量frmCnt纪录打开的子窗体数量,如何在子窗体
关闭时使主窗体的frmCnt减一??
一个窗体关闭时怎样让另一个窗体知道?既是两个独立的窗体实例怎么相互通信?
 
一般情况下,子窗口中都包含到主窗口的引用。
1。对于mdi子窗口
在显示子窗口的时候。
frmMdiChild frm=new frmMdiChild();
frm.MdiParent=this;//当前的mdi主窗口
frm.Show();

这样在子窗口中,就可以通过这个引用(MdiParent)访问主窗口中的成员。
((FrmMdiMain)this.MdiParent).AAA=1;
2.对于普通窗口
在显示子窗口的时候。
frmNormalChild frm=new frmNormalChild();
this.AddOwnedForm(frm);
frm.Show();

这样在子窗口中,就可以通过这个引用(Owner)访问主窗口中的成员。
((FrmMdiMain)this.Owner).AAA=1;

3。有时两个窗口中无法通过上面的两个应用访问的话,可以考虑在需要访问别人的窗口
中定义一个到其它窗口的引用。(道理和上面一样)或通过其他对象来协调处理两个窗口
的通讯。

 
接受答案了.
 
顶部