如何在C#中关闭一个窗口的所有子窗体(Child Windows)并保持主界面(Parent Form)打开?
时间: 2024-11-27 13:13:06 浏览: 55
在C#中,如果你有一个包含多个子窗体(Child Forms)的主窗体(Parent Form),你可以通过遍历所有子窗体,并对每个子窗体调用`Close()`方法来关闭它们。同时,为了保持主界面打开,可以在关闭子窗体之前检查是否为主窗体:
```csharp
public partial class MainForm : Form
{
private List<Form> childForms = new List<Form>(); // 存储子窗体列表
public MainForm()
{
InitializeComponent();
// 当子窗体加载时添加到列表中
foreach (Form form in this.Controls.OfType<Form>())
if (form.Owner == this)
childForms.Add(form);
}
private void CloseAllChildWindows()
{
foreach (var childForm in childForms)
{
if (childForm != null && childForm.Visible) // 只关闭可见的子窗体
{
childForm.Close(); // 关闭子窗体
childForms.Remove(childForm); // 更新子窗体列表
}
}
}
}
```
当你想要关闭所有的子窗体时,只需要调用`CloseAllChildWindows()`方法即可。这样,每个子窗体会独立地关闭,而主窗体会保留在活动状态。
阅读全文