如何在MDI程序中把子窗体菜单合并到主窗体上

本文介绍了如何在MDI(多文档界面)程序中将子窗体的菜单项合并到主窗体上。通过设置菜单项的MergeOrder和MergeType属性,实现菜单的合并和布局。在主窗体和子窗体的构造函数中添加代码,创建并设置菜单项,然后为菜单点击事件定义处理函数。正确设置MergeOrder能确保菜单项按预期排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       这里只讲在MDI中,子菜单与父菜单合并的简单方法。

 

首先在MDI的主窗体中:

1.  在主窗体构造函数中,添加如下代码,注意要在InitializeComponent调用之后,如:

            //Add File Menu

            MenuItem miFile = mnuMain.MenuItems.Add("&File");

            miFile.MergeOrder=1;

            miFile.MergeType = MenuMerge.MergeItems;

 

            MenuItem miAddDoc = new MenuItem( "&Add Document",

                new EventHandler(this.FileAdd_Clicked),

                Shortcut.CtrlA );

            miAddDoc.MergeOrder=100;

 

            MenuItem miExit = new MenuItem( "E&xit",

                new EventHandler(this.FileExit_Clicked),

                Shortcut.CtrlX );

            miExit.MergeOrder=110;

 

            miFile.MenuItems.Add(miAddDoc);

            miFile.MenuItems.Add("-");     // Give a seperator

            miFile.MenuItems.Add(miExit);

 

            //Add Window Menu

            MenuItem miWindow = mnuMain.MenuItems.Add("&Window");

            miWindow.MergeOrder = 10;

            miWindow.MenuItems.Add( "&Cascade",

                new EventHandler(this.WindowCascade_Clicked));

            miWindow.MenuItems.Add( "Tile &Horizontal",

                new EventHandler(this.WindowTileH_Clicked));

            miWindow.MenuItems.Add( "Tile &Vertical",

                new EventHandler(this.WindowTileV_Clicked));

            miWindow.MdiList = true ; //Adds the MDI Window List to the bottom of the menu

 

2.  然后为相应的Menu_Click事件定义函数,如:

        #region MENU_CLICK_MESSAGE_HANDLE

        //File->Add Menu item handler

        protected void FileAdd_Clicked(object sender, System.EventArgs e)

        {

            AddMDIChild() ; //Create new MDI child window

        }

 

        //File->Exit Menu item handler

        protected void FileExit_Clicked(object sender, System.EventArgs e)

        {

            this.Close();

        }

 

        //Window->Cascade Menu item handler

        protected void WindowCascade_Clicked(object sender, System.EventArgs e)

        {

            this.LayoutMdi(MdiLayout.Cascade);

        }

 

        //Window->Tile Horizontally Menu item handler

        protected void WindowTileH_Clicked(object sender, System.EventArgs e)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值