C#中MDI表单的问题

Posted

技术标签:

【中文标题】C#中MDI表单的问题【英文标题】:Problem with MDI form in c# 【发布时间】:2011-01-17 11:55:48 【问题描述】:

当我第一次从其父级调用 MDI 子级的 show() 时,出现以下错误...

方法:CheckReleased 行:0 列:0 [例外]:窗口句柄已经存在。

这个错误的原因是什么以及如何克服它?

第二次调用同一个孩子的 show() 没有给出任何异常。为什么它只是第一次失败?

我正在使用 Dotnet 3.5 框架...

【问题讨论】:

【参考方案1】:

原因可能是,您是否试图在窗体出现之前显示一些子控件?

如果您尝试在创建窗口之前使某些子控件可见(在表单中),则此错误通常会显示出来。因为表单中的所有子控件都需要它的父句柄。

【讨论】:

好的,谢谢。在加载父表单时添加 mdi 子项后,上述问题得到解决。最初我尝试在父窗体的构造函数中添加 mdi child。 如果您的问题由于上述答案而得到解决,您应该投票支持上述答案。根据 SO 常见问题解答,您应该对有帮助的答案进行投票,以便访问者知道哪个答案是正确且有帮助的。 +1【参考方案2】:

将 MenuStrip 附加到 MDI 父窗口(Windows 窗体)c#(或)wpf 中的 mdi 子菜单

http://keranservices.blogspot.in/2014/02/append-menustrip-to-mdi-parent-window.html

【讨论】:

请在帖子本身中提供解释性答案,而不是指向链接。链接随时可能中断..

以上是关于C#中MDI表单的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C# 中的表单返回值?

表单未作为活动窗口打开

Borland C++Builder 6 MDI 应用程序

如何禁用 MDI 子项的条形菜单项

如何在不使用系统关闭按钮的情况下关闭MDI子项

表单的新实例覆盖现有表单变量声明