如果你写的MDI程序中,要将父窗体与子窗体菜单融合在一起,Delphi提供了非常方便的方法.将父窗口的上级菜单比方说"File"文件,有个属性GroupIndex,设为0,将子窗体的菜单比方说"Funcion"功能,将GroupIndex设为1,这样的话,在打开子窗体的时候,就会将菜单合并在一起了.如果你不改这个属性的话,一般来说,GroupIndex都是0,这样一来,打开子窗体的时候,父窗体的菜单就看不到了.还有注意,将菜单本身的AutoMerge(自动合并)设为false,如果放成true的话,两个菜单就会都看不到的.

MenuItem有一个“GroupIndex”属性,将你要溶合的MDI父窗口和子窗口的某个菜单的GroupIndex设成相同的值就OK了。
---------------------------------------------------------------

合并菜单时主要使用两个属性:窗体的Menu属性和菜单控件的GroupIndex属性。
由于一个窗体一次只能使用一个菜单,所以必须用Menu属性指明窗体当前使用的菜单控件名。
GroupIndex属性指明每个菜单项在菜单中的位置。可按照以下规则确定各菜单项的GroupIndex属性:
1)数值从0开始,排在菜单的最左端,并向右依次增大。如果主菜单与被合并的菜单中有相同的菜单项,则可以将两个菜单项的GroupIndex属性设为一个值,这样在菜单合并时,子菜单就会替换掉主菜单上的相应菜单项。
例如:主窗体和子窗体的菜单控件中File菜单项的GroupIndex属性值都设为0,打开子窗体后File菜单就会自动扩展。
2)如果需要将被合并菜单中的菜单项插入到主菜单中去,则可以将主菜单中的GroupIndex属性跳过一个序列值,而将插入菜单项的GroupIndex属性值设为空缺的那个值。
例如:在主窗体中我们将File和Help菜单项的GroupIndex分别设为0和4,而在子窗体中Edit、Search和Window菜单项的 GroupIndex分别设为1、2和3,或1、1和1(此时三个菜单的排列顺序与在菜单编辑器里的排列顺序一致),则打开窗体后,Edit、 Search和Window菜单项就会自动插入。
3)将同一个窗体中的多个菜单项的GroupIndex属性设为相同的值,则它们的排列顺序在菜单融合时不发生变化。

Delphi中MDI父窗体与子窗体菜单合并相关推荐

  1. vb如何设置父窗体与子窗体——MDI窗体

    目前我理解的父窗体与子窗体的关系是:父窗体包含子窗体. 想要达到这样的效果,首先要新建一个父窗体(MDI窗体). MDI窗体上又不允许放置PictureBox以外的控件,但是Picture上面就能放置 ...

  2. 关于主窗体与子窗体之间的通信以及面向对象思想的一些应用

    该写几篇文章啦~ 最近在搞winForm,开始的时候遇到点问题.其实也不算什么大问题,归结起来还是主窗体与子窗体之间传值.通信的问题: 这个问题在网上的解决方案有很多,一搜一大堆,比如将主窗体自身作为 ...

  3. C# WPF MVVM模式下在主窗体显示子窗体并获取结果

    01 - 前言 在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以: Form2 f2 = new Form2();f2.Show(); 或者 Form2 f2 = new ...

  4. 【Groovy】自定义 Xml 生成器 BuilderSupport ( setParent 方法中设置父节点与子节点关系 )

    文章目录 一.setParent 方法中设置父节点与子节点关系 二.完整代码示例 1.MyBuilderSupport 生成器代码 2.使用 MyBuilderSupport 生成器创建 Xml 代码 ...

  5. Delphi中MDI窗体调用MDI子窗体Delphi中MDI窗体调用MDI子窗体,怎么调用

    先定义一个函数 private function FindForm(caption: string): bool; { Private declarations } public { Public d ...

  6. 如何:创建 MDI 父窗体、子窗体、确定活动的 MDI 子窗体

    Microsoft Visual Studio 2008/.NET Framework 3.5 Windows 窗体编程 如何:创建 MDI 父窗体 多文档界面 (MDI) 应用程序的基础是 MDI ...

  7. Windows应用程序C#创建MDI父窗体和子窗体

    一:创建父窗体 1.创建 Windows 应用程序. 2.在"属性"窗口中,将 IsMDIContainer 属性设置为true. 这将该窗体指定为子窗口的MDI 容器. 3.设置 ...

  8. Winform--处理MDI父窗体与子窗体的交互

    设置个窗体只能弹出一次 设置个窗体只能弹出一次#region  设置个窗体只能弹出一次 /**//**//**//// <summary> /// 控制只弹出一个子窗体 /// </ ...

  9. MDI窗体与子窗体的显示问题--(如何让主窗体是被控件挡住的子窗体显示)

    机房收费系统热火朝天的进行着,于此同时问题也是毫不留情的就来了,在MDI窗体中添加了picture控件后,子窗体不能显示就是我遇到的第一个问题.刚刚着手做系统遇到这样的问题,挺棘手的,当时在网上查过很 ...

最新文章

  1. 如何让button保持点击状态
  2. linux 网络传输压塑文件,萌新的Linux学习之路(十一)文件压缩传输
  3. 【python3的学习之路四】使用list和tuple
  4. oracle 加查询锁,oracle 锁查询 select加锁方法
  5. Python 类的特性讲解
  6. CNVD-C-2019-48814 漏洞
  7. 华为云服务器配置ipv6,华为云获“IPv6支持度优秀奖”,持续助推云网融合
  8. 什么是架构?网络架构中都有什么?终于有人讲明白了
  9. plsql提示列快捷键_plsql常用快捷键
  10. 开源MSSQL Express Profile 文件
  11. vim trickies
  12. mysql csv存储引擎_2.2 mysql存储-CSV存储引擎
  13. WC3L联赛结束了!!!
  14. Python中list,tuple,dict,set的区别和用法
  15. Vue之webpack之Babel
  16. vagrant 常用的几个命令
  17. 图解SQL的Join(转摘)
  18. google 企业邮箱 smtp pop3设置
  19. JS逆向 | 面向小白之eval混淆
  20. c 语言让电脑自动关机,C语言编写简单的定时关机程序

热门文章

  1. 19.第二十六章上.法律法规
  2. Android程序员搭建一个属于自己的服务器
  3. 一维码扫描, 谢谢
  4. bzoj1191 [HNOI2006]超级英雄Hero
  5. python爬虫实现豆瓣数据的爬取
  6. VueUse中的这5个函数,也太好用了吧
  7. ohmyzsh用在mysql_Linux 安装 zsh oh-my-zsh
  8. 如何disable AMM以及ASMM
  9. 5GC主要接口对应的网络功能关系,以及使用的协议
  10. 码农逆袭传奇:二本Java程序员如何闭关6个月斩下月薪30k的字节Offer