4

我有一个问题,当我关闭由打电话ShowDialog(owner)

奇怪的是,这种情况并非每次都会发生。我看不到 owner/parent 参数是如何被清除的,所以我不知道为什么 parent 会消失。

4

5 回答 5

4

我每次都能重现。

该错误不在 WinForms 中,而是在 windows API 中(我可以使用 C 代码轻松重现它)。

避免三重嵌套对话框,这似乎是主要触发器。

您还可以在 OnClose 中重新聚焦正确的表单。

于 2009-01-06T20:49:23.787 回答
1

在 MdiParent 中......所有子窗体都会自动加载 {Maximize}{Minimize}{CLose} 按钮......

您只需要像在普通窗口中一样使用这些按钮,,,,,......

表格将被最小化,但仍将显示在 MdiParent....

参考:http ://www.itpian.com/Coding/6412-How-to-minimize-Form-which-is-shown-in-parent-Form.aspx

于 2011-04-12T12:23:27.657 回答
1

在调用 Close() 之前将焦点设置到窗体的 Mdiparent。为我工作...

于 2009-04-17T13:34:57.427 回答
1

尝试使用此代码,我有同样的问题,终于找到了这个解决方案

ChildForm childForm = new ChildForm();
childForm.Show(this);
于 2013-03-12T07:41:17.783 回答
0

不确定你是否破解了这个,但这可能是你处理对话框中事件的方式。确保您已设置对话框表单 AcceptButton 和 CancelButton 属性,然后在其单击事件处理程序中返回结果。

如果您有任何隐藏对话框的代码,您将遇到问题。

于 2011-06-08T21:54:18.747 回答