C# MDI窗体的中添加菜单栏的一个小问题
MDI子窗体最大化时在主窗体的右上角有3个图标(最小化,最大化,关闭),当我在MDI主窗体中添加菜单栏时,就会发现MDI的窗体的那3个图标在菜单栏上面,非常影响美感,我见过大家都是吧这个3个图标做在菜单栏上的,请问是怎么做的?
------解决方案--------------------往你的MDI主窗体上添加一个MenuStrip控件,然后按照你的菜单设计配置该控件,就得到了菜单栏。
然后设置主窗体WindowState属性,可以达到实现最大化/最小化/正常等三种情况:
this.WindowState = FormWindowState.Minimized; // 最小化
this.WindowState = FormWindowState.Maximized; // 最大化
this.WindowState = FormWindowState.Normal; // 正常
------解决方案--------------------初始化子窗体的WindowState为最大化
------解决方案--------------------this.WindowState = FormWindowState.Minimized;
------解决方案--------------------路过顺便学习!!
------解决方案--------------------
另稍微补充下,
MDI 这类窗体,父窗体都是作为框架 使用的, 而子窗体 ,也大多是模块的 管理窗体。如果功能简单 那么另说了。
一般不在子窗体 做菜单, 菜单都是 父窗体 建立的,自动就继承到子窗体里面了,如果你觉得哪个菜单不想在某个子窗体上现实,就做判断,visable = false 掉就可以了
所以你的问题 其实出现在 菜单 要在父窗体开发,不要在子窗体开发,父窗体 是一个 菜单, 工具条的全集合。
下此要注意
------解决方案--------------------
子窗体最大化的时候,最小化等三个图标本来就是在主窗体菜单栏的最右边的呀。
lz你是不是想子窗体非最大化的时候也是这样的效果?
------解决方案--------------------你想要把 父窗体和子窗体的 最大,最小, 关闭,按钮合并,这是没有办法做到的,
你最多是 把子窗体的 最大,最小,隐藏,默认最大,
毕竟这还是两个窗体,父窗体也有自己的 ,大,小变化。
子窗体也是。
------解决方案--------------------
我刚才做了一个简易的MDI,应该没有特别设置啊,大致步骤如下:
1.创建两个Form,Form1是主,Form2是子。
2.主Form1的IsMdiContainer属性设置为True。子Form2采用缺省的False。
3.主Form1上添加对应的MenuStrip控件,作为菜单栏,并且编辑需要的菜单。
4.在该MenuStrip上随便找一个添加了的菜单项,双击,编辑该项的“Click”事件,大致代码如下:
private void toolStripMenuItem3_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();