最近在做项目的时候,发现MDI父窗体的主菜单的左边,当子窗体最大化的时候,显示了子窗体的图标ICON。以及如果子窗体含有菜单的话,子窗体的菜单会显示再父窗体上。
在网上搜索了好多文章,最后终于发现了解决方法。
1.菜单合并问题,把菜单中的AllowMerge属性设置为false;
2.显示在窗体ICON问题,如下方法解决:
在主菜单的ItemAdded事件编写如下代码:
private
void
menuMain_ItemAdded(
object
sender, ToolStripItemEventArgs e)
{
if
(e.Item.Text.Length
==
0
||
e.Item.Text
==
"
还原(&R)
"
||
e.Item.Text
==
"
最小化(&N)
"
)
{
e.Item.Visible
=
false
;
}
}
大家可以参考下面两篇文章做详细参考:
http://www.cnblogs.com/frostcity/archive/2008/08/20/1272355.html
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3337697&SiteID=1
分享到:
相关推荐
压缩包中的"MyMdi"可能是一个包含了VB.NET项目的文件夹,其中可能包含MDI Parent和MDI Child窗体的源代码文件,以及项目的其他相关组件。如果你想要深入学习或使用这个修复了问题的版本,可以下载这个压缩包,解压后...
综上所述,VB.NET中的MDI窗体提供了创建多文档应用程序的能力,而执行子窗体的函数子程序是实现MDI窗体间交互的关键部分。理解并熟练运用这些概念,将有助于你构建更复杂、更功能丰富的应用程序。在实际项目中,你...
### VS2017 .NET C# MDI窗体菜单,隐藏子窗体ICON图标 在Visual Studio 2017环境下使用.NET Framework和C#语言进行开发时,经常需要处理多文档界面(MDI)应用程序。MDI是一种常见的用户界面设计模式,允许在一个主...
在VB.NET中实现MDI窗体,首先需要设置一个窗体为主MDI窗体(Main MDI Form),然后创建的其他窗体将作为MDI子窗体(MDI Child Forms)。这个例子源码很可能是演示如何自定义和控制MDI窗体的行为,以提供更灵活的用户...
Winform的MDI父窗体中的子窗体最大化后消除子窗体在父窗体菜单栏中的图标。
因此,本文介绍的方法不依赖于MDI菜单栏,而是直接通过代码来控制子窗体的显示特性,达到隐藏子窗体标题栏的目的。 #### 二、关键技术点 1. **设置子窗体的BorderStyle属性**: - `FormBorderStyle.None`:表示子...
最后,显示窗体。 生成完成的myfirst.dll后,我们创建一个新的空白标准工程,并删除原有的窗体,取而代之的是一个MDI窗体,将其设置为启动窗体。然后,我们需要在工程中引用刚刚生成的myfirst.dll。在MDI窗体的加载...
MDI子窗体通常有自己的菜单,这些菜单可以通过`InstallMenu`方法安装到MDI父窗体上,以便在父窗体的菜单栏中显示。 在"program modal"这个文件中,可能包含了一个示例程序,演示了如何创建和管理MDI父窗体和子窗体...
然而,有时开发者希望每个MDI子窗体在任务栏上都有一个独立的图标和标题,以便用户可以更容易地管理和切换不同窗口。要实现这一功能,我们需要利用Windows API(Application Programming Interface)函数。 首先,...
通常,我们会为MDI功能创建如“文件”、“窗口”等菜单,其中“窗口”菜单包含“新建”、“排列”等子菜单,用于打开和管理MDIChild窗体。 接下来,我们需要将窗体设置为MDI窗体。对于MDIParent,需要设置其...
1. 如何创建和初始化一个MDI父窗体,以及如何在其内部添加和管理MDI子窗体。 2. 使用`MenuStrip`控件创建菜单,并与事件处理程序绑定,实现菜单项的点击响应。 3. 子类控件的创建和使用,包括如何继承标准控件,添加...
子窗体在MDI父窗体内部打开,可以通过菜单、工具栏或其他控件进行切换和管理。 接下来,让我们探讨如何实现“历史信息”的部分。这通常涉及到动态更新菜单,每当用户执行一个新操作时,如打开一个文件或执行一个...
本篇将详细讲解如何在MDI父窗体中打开子窗体,并讨论如何管理这些子窗体的排列与显示,以及结合TreeView控件实现特定功能。 首先,MDI父窗体打开子窗体的步骤如下: 1. 创建MDI父窗体:在Visual Studio中,可以...
本文将深入探讨如何在MDI环境中控制子窗体的显示与管理,特别是如何实现“在打开新子窗体时自动关闭当前存在的子窗体”的功能。 ### MDI基础概念 MDI架构的核心是`MDIForm`,即作为所有子窗体容器的主窗体。当一个...
在MDI父窗体上,可以设置“文件”菜单项来打开新子窗体,或者添加“窗口”菜单项来管理子窗体列表。 - 例如,添加一个打开子窗体的菜单项: ```csharp ToolStripMenuItem openItem = new ToolStripMenuItem("打开...
MDITab控件是为了解决MDI应用中的窗口组织问题而出现的,它将传统的MDI窗体以标签页的形式展现,使得用户可以通过点击不同的标签在多个子窗体间切换,提高界面的整洁度和用户的操作体验。这种控件通常包含一个MDI...
总结来说,C# WinForm中的MDI窗体提供了多文档界面的支持,而菜单动态合并是MDI窗体的一个重要特性,它使得子窗体的功能可以直接在父窗体菜单栏中展现,提升了用户体验。通过以上代码示例,开发者可以轻松地在自己的...
通过以上步骤,我们实现了C# Winform MDI窗体的子窗体单个显示和切换功能,避免了重复显示相同子窗体的问题。这种方法代码简洁,易于理解和维护。如果你有任何疑问或需要进一步的帮助,可以通过提供的QQ或邮箱与作者...
在实际开发中,MDI窗体的应用可能更加复杂,可能需要处理子窗体之间的通信、菜单和快捷键的统一管理等问题。C#提供了丰富的API和事件处理机制,可以帮助开发者轻松地实现这些功能。例如,可以使用`Form Activated`...
为了解决这个问题,可以将MDI子窗体转换成标签页面的形式,通过TabControl控件来实现。这样既保留了MDI的特性,又提供了更直观、友好的用户界面。 标题中的“C#把MDI子窗体变为标签页面”指的是将原本作为MDI子窗体...