遇到一个棘手问题,求助,在线等
winform 中 MDI父窗口中打开一个MDI子窗口,现要求实现功能如下:
如果直接点击子窗口中的关闭按钮则MDI子窗口自动最小化,不能关闭。
如果点MDI父窗口中的关闭按钮则能同时关闭父子窗口。
搞了半天了也没办法。
问题点数:20、回复次数:10Top
1 楼C_Cyou()回复于 2005-03-02 16:05:20 得分 0
自己定一下。Top
2 楼yellowhwb(天の羽)回复于 2005-03-02 16:11:41 得分 15
你可以重载Form的OnClosing事件:
protected override void OnClosing (System.ComponentModel.CancelEventArgs e)
{
this.WindowState=FormWindowState.Minimized;
e.Cancel=true;
}Top
3 楼C_Cyou()回复于 2005-03-02 16:12:36 得分 0
不行的。这样MDI父窗口也无法关闭。Top
4 楼yellowhwb(天の羽)回复于 2005-03-02 16:14:31 得分 0
这我到没试过,再想想看!Top
5 楼beibei168(beibei)回复于 2005-03-02 16:16:43 得分 0
把所有的子窗口搜寻一次,如果有就关闭,Top
6 楼C_Cyou()回复于 2005-03-02 16:20:54 得分 0
把所有的子窗口搜寻一次,如果有就关闭,
如何使点击子窗口的关闭按钮产生的效果使窗口最小化?Top
7 楼yellowhwb(天の羽)回复于 2005-03-02 16:25:57 得分 0
你在MDIParent和MDIChild的Form里都加上下面的重载函数:
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
if(this.IsMdiChild)
{
this.WindowState=FormWindowState.Minimized;
e.Cancel=true;
}
else
{
e.Cancel=false;
}
base.OnClosing(e);
}Top
8 楼yellowhwb(天の羽)回复于 2005-03-02 16:27:17 得分 0
我测了一下,应该可以的!Top
9 楼MyLf(不睡觉的鱼)回复于 2005-03-02 16:34:48 得分 5
在MDI子窗体的Closing事件中:
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
}
在主窗体的Closing事件中:
private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
Application.Exit();
}Top
10 楼C_Cyou()回复于 2005-03-02 16:41:41 得分 0
可以了,谢谢Top




