C#MDI打开子窗体去掉自动生成的菜单栏

C#在DMI中打开子窗体时自动生成了菜单栏,怎么去掉菜单栏呢呢?


先在父窗体的加载事件中打开子窗体并使它最大化


private void MDIParent1_Load(object sender, EventArgs e)
        {
            firstPage();//打开子窗体
        }

打开子窗体的方法:

private void firstPage() {
            splash frm = new splash();//子窗体实例化
            frm.MdiParent = this;//设置当前窗体为子窗体的父窗体
            frm.WindowState = FormWindowState.Maximized;//子窗体的状态是最大化
            frm.Show();//显示窗体
        }


在网上找了好多发现,只有在使用MenuStrip菜单栏的时候才能去掉,使用ToolStrip的时候无法去掉自动生成的菜单栏,所以为了使用ToolStrip的时候也去掉菜单栏,就在父窗体中一并加入了MenuStrip菜单栏,来实现去掉菜单栏。

首先在ToolStrip上面加入MenuStrip菜单栏


添加MenuStrip菜单栏的ItemAdded事件


在自动生成的方法中加入

 private void menuStrip1_ItemAdded_1(object sender, ToolStripItemEventArgs e)
        {
      if (e.Item.Text.Length == 0             //隐藏子窗体图标
       || e.Item.Text == "最小化(&N)"      //隐藏最小化按钮
       || e.Item.Text == "还原(&R)"           //隐藏还原按钮
       || e.Item.Text == "关闭(&C)")         //隐藏关闭按钮
            {
                e.Item.Visible = false;
            }
        }

加入之后还不行,需要在父窗体加载事件中加入这句代码:

this.MainMenuStrip = menuStrip1;//把子窗体菜单栏设置给父窗体的菜单栏


private void MDIParent1_Load(object sender, EventArgs e)
        {
            this.MainMenuStrip = menuStrip1;//把子窗体菜单栏设置给父窗体的菜单栏
            firstPage();//打开子窗体
        }

完成之后生成,发现菜单栏还在,但是图标全没了:


这样看觉得好变扭,怎么解决呢?想到了把菜单栏的高度跳到最小就行了,但是属性中不能直接调整菜单栏高度,于是在加载事件中做了改变菜单栏高度的操作:

加入了两句代码:

            menuStrip1.AutoSize = false;
            menuStrip1.Size = new Size(100, 1);


private void MDIParent1_Load(object sender, EventArgs e)
        {
            //设置自定义菜单栏的高度为1
            menuStrip1.AutoSize = false;
            menuStrip1.Size = new Size(100, 1);
            this.MainMenuStrip = menuStrip1;//把子窗体菜单栏设置给父窗体的菜单栏
            firstPage();
        }

再次生成之后的效果:


ToolStrip上面的MenuStrip菜单栏已经不见了,OK,问题解决。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值