主窗口中两个按钮
A:弹出A窗口
B:弹出B窗口A为操作窗口
B为状态窗口A中的操作状态可以在B中实行显示出来。public delegate void TipDelegate(string msg);A中增加事件:public event TipDelegate TipEvent;同时增加响应:
OnTipEvent(string msg)
{
if(TipEvent!=null)
{
TipEvent(msg);
}
}B中调用:
B.TipEvent+=new TipDelegate(实现方法);
实现方法()
{
}
--------------------
通过测试,程序可实现现在,如果AB窗口关闭后,再次进行操作都不能实现原功能。当A关闭后再开,进行操作,B中无显示
当B关闭后再开,进行操作,则报错。此问题如何解决?最好是当B窗口关闭时,在A中有任何窗口,B会自动打开,并显示信息。
A:弹出A窗口
B:弹出B窗口A为操作窗口
B为状态窗口A中的操作状态可以在B中实行显示出来。public delegate void TipDelegate(string msg);A中增加事件:public event TipDelegate TipEvent;同时增加响应:
OnTipEvent(string msg)
{
if(TipEvent!=null)
{
TipEvent(msg);
}
}B中调用:
B.TipEvent+=new TipDelegate(实现方法);
实现方法()
{
}
--------------------
通过测试,程序可实现现在,如果AB窗口关闭后,再次进行操作都不能实现原功能。当A关闭后再开,进行操作,B中无显示
当B关闭后再开,进行操作,则报错。此问题如何解决?最好是当B窗口关闭时,在A中有任何窗口,B会自动打开,并显示信息。
{
get
{
if (null == instance)
{
FrmB.instance = new FrmB();
} return FrmB.instance;
}
}
在B的FORMClosing事件内:instance=null;A的button调用
FrmB B=B.instance;
B.TipEvent+=new TipDelegate(实现方法);
A类定义刷新接口,在需要刷新数据时调用该接口.
B类实现其接口.
外层Form在初始化A时,创建B的实例并传递给A.这样能降低A和B的耦合性,以后想换别的显示窗口也方便!
A:弹出A窗口
B:弹出B窗口 在Form中保存A和B的成员对象
在点击按钮时,先判断该成员变量是否为空,为空则创建,否则显示;
A,B窗口关闭后也可以实现相应的功能
还有一个当B窗口关闭,A中有操作时间,B也可以显示出来没有实现我的实现代码是:主窗口中有事件MEvent;---->OnMEvent()主窗口在Load时,将A,B窗口显示出来B.BEvent+=new .....(M_BEvent);OnMEvent()
{
if(MEvent!=null)
MEvent();
}M_BEvent()
{
OnMEvent();
}B窗口中有事件BEvent;---->OnBEVent()
Work()
{
OnBEVent();
}
OnBEVent()
{
if(BEvent!=null)
{
BEvent();
}
}
------------------------------------------
A窗口主窗口事件:M.MEvent+=new ...(A_MEvent);A_MEvent()
{
////状态显示
}
A窗口关闭时:M.MEvent-=new ...(A_MEvent);