日期:2014-05-18  浏览次数:21053 次

如何控制子窗体的的关闭
//子窗体的显示
TreeForm.MdiParent = this;
TreeForm.Show();
TreeForm.Focus();

我想点击TreeForm的X进行关闭时无效,不让关,但是在主窗体推出时要能关闭TreeForm。不知道如何实现?

------解决方案--------------------
在主窗体的Closing事件中关闭子窗体。
利用主窗体的MdiChildren属性,它是一个Form数组。
C# code
Form[] formList=this.MdiChildren;
foreach(Form f in formList)
{
  f.Close();
}

------解决方案--------------------
设置子窗口的cancel属性为true

------解决方案--------------------
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}


但是在主窗体推出时要能关闭TreeForm
主窗体是主线程,主线程关闭,其他的就都关闭了,也可以在主窗体的FormClosing中关闭所有的子窗体啊
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
foreach (Form form in Application.OpenForms)
{
form.Close();
}

}
------解决方案--------------------
在主窗口的formcloing中加上 Application.ExitThread(); 就可以了
------解决方案--------------------
重载WndProc函数, 处理WM_CLOSE消息。