MDI父窗体:-设置父(也许只是标题是重复的)

本文关键字:标题 也许 窗体 设置 MDI | 更新日期: 2023-09-27 18:03:42

看这个问题的答案。我尝试了公认答案的第二条评论。问题在于"Application.OpenForms[0]"。它给了我错误说"表单被指定为这个表单的MdiParent不是一个MdiContainer。参数名称:"value"。然后展开看看有多少表单是打开的。我得到了一个惊人的结果,我现在发现。有两种开放形式。其中之一是LoginForm我有this。hide ();登录成功。当我把它改成this。close ();应用程序关闭。为什么它仍然是打开的,我如何在不关闭应用程序的情况下关闭它?

MDI父窗体:-设置父(也许只是标题是重复的)

首先,当你关闭一个表单时,如果应用程序完全关闭,很可能是因为你关闭了主表单,即:

中指定的那个
Application.Run(new MainForm());

您的LoginForm是否显示您正在关闭主窗体?

第二,如果一个表单要成为一个MdiParent,它必须有一个属性ismdiccontainer为true。

第三,我不会依赖Application。OpenForms[0],而是遍历它们并按名称选择正确的,如下所示:

FormCollection fc = Application.OpenForms;
foreach (Form frm in fc)
{
if (frm.Name == "Main Form")
    do what you need to do...
}