编程语言
首页 > 编程语言> > c# – 在最大化MDI子项时删除MDI容器表单的默认MDI菜单

c# – 在最大化MDI子项时删除MDI容器表单的默认MDI菜单

作者:互联网

我正在开发一个.NET C#应用程序,它具有一个主要Form,它是MDI容器.当用户最大化MDI子项时,Windows在容器窗体的标题栏下方绘制一个控制条,该窗体具有子项的图标和右侧的系统按钮.基本上,我需要隐藏此条带并使用自定义控件来提供相同的功能.

有没有办法阻止Windows绘制这个MDI条带?

解决方法:

实际上,我找到了一种简单而有趣的方法,通过使用虚拟MenuStrip控件(不将其放在Form的Controls集合中)分配Form的MainMenuStrip属性,从表单中删除此东西:

private void OnForm_Load(object sender, EventArgs e)
{
    this.MainMenuStrip = new MenuStrip();
}

这可以防止默认的MDI标题被绘制,因为Form将其功能委托给其默认菜单条(如果有的话).由于MenuStrip控件不在Form的Controls集合中,因此它也不可见,因此它只是用作在孩子最大化时隐藏讨厌的MDI菜单的虚拟菜单.

标签:c,net,menu,mdi,childwindow
来源: https://codeday.me/bug/20190610/1214793.html