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,问题解决。


参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页

打赏作者

小哥丷

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值