代码之家  ›  专栏  ›  技术社区  ›  MysticEarth

ShowDialog()当另一个窗体也通过ShowDialog()可见时,是否同时关闭这两个窗体?

  •  1
  • MysticEarth  · 技术社区  · 14 年前

    我有以下情况:

    1. ParentForm 打开 WelcomeForm 具有 ShowDialog .
    2. 欢迎形式 包含一个打开的按钮 NewProjectForm 具有 显示对话框
    3. 当用户点击 OK 新项目表 ,创建新项目并关闭两个表单(行为良好)
    4. 当用户点击 CANCEL 新建项目窗体 两种形式都是封闭的(行为可以理解,但不可取)。

    我怀疑这与 DialogResult (实际上 DialogResult.None 取消 新项目表 )

    如果两张表格都不关闭,我如何才能得到上述情况?

    编辑
    用于打开的代码 新项目表 :

    ProjectNew projectNew = new ProjectNew();
    projectNew.StartPosition = FormStartPosition.CenterParent;
    projectNew.ShowDialog(this);
    

    用于打开的代码 欢迎词 :

    Welcome welcome = new Welcome();
    welcome.StartPosition = FormStartPosition.CenterParent;
    welcome.ShowDialog(this);
    

    注: 新建项目窗体 被打开 Welcome 但通过 父型

    编辑2
    奇怪的东西;我用相同的代码/情况创建了一个新项目,它不会重现这种行为…

    3 回复  |  直到 13 年前
        1
  •  1
  •   adrianbanks    14 年前

    这是一个长期存在的问题,我已经遇到过几次了。 This 这篇文章有更多的讨论,还有一个解决方法。

    它显然已经在.NET3.5SP1中修复了(安装了SP1之后,我再也无法复制它),尽管我还没有看到任何官方消息说它确实被修复了。

        2
  •  1
  •   Tom Bushell    13 年前

    我被这个咬了,因为我从另一个窗体复制/粘贴了一些按钮,没有意识到 按钮 它的DialogResult属性设置为 对话框结果。取消 .

    单击时,这是设置包含表单的对话框结果,导致其关闭。

    将其重置为 对话框结果。无 解决了问题。

    因此,检查所有模式对话框的DialogResult属性。

        3
  •  0
  •   MysticEarth    14 年前

    删除了几个按钮,添加了一个新的:解决。
    所以我觉得这应该是一个对话的结果,奇怪的东西。