VS.NET 2010 开发winform
假设主窗体A,通过.ShowDialog();显示窗体B,
在窗体B中有一BUTTON,点击BUTTON,通过.ShowDialog();显示窗体C
请问:显示窗体C的同时,关闭窗体B(主窗体A不关闭),请问BUTTON的事件中应该添加什么代码???
注:
我试了一下,BUTTON用Hide(),主窗体A也会一起影藏掉
------解决思路----------------------
通过B调用C,B是C的父窗体,C呈现出来,它的父窗体B不能关闭。
------解决思路----------------------
你这个是要换主窗口吗?我之前弄过一个登陆窗口,点击登陆,将登陆的主窗口转换到第二个登陆窗口。要必须明确主窗口和子窗口的关系
------解决思路----------------------
既然要隐藏父窗体,那么.ShowDialog()的意义是什么
------解决思路----------------------
你这样就得到方案了嘛,控制器放在a上,控制显示b还是c,b、c只能关闭或隐藏自己
------解决思路----------------------
使用委托。
1:在窗口C中创建委托,在窗口C的Load 事件中 指定委托实例。
类似:
public delegate void DelegatCloseWindow();
public event DelegatCloseWindow CloseWindow;
窗口C Load事件:
..................
if (CloseWindow != null)
{
CloseWindow();
}
.................
在B窗口Show C的时候 加上,类似:
frmC.CloseWindow+= closeBWindow;
closeBWindow 方法就是关闭B窗口的方法。
void closeBWindow(){
this.Close();
}