日期:2014-05-17  浏览次数:21172 次

C# MDI窗体的中添加菜单栏的一个小问题
MDI子窗体最大化时在主窗体的右上角有3个图标(最小化,最大化,关闭),当我在MDI主窗体中添加菜单栏时,就会发现MDI的窗体的那3个图标在菜单栏上面,非常影响美感,我见过大家都是吧这个3个图标做在菜单栏上的,请问是怎么做的?

------解决方案--------------------
往你的MDI主窗体上添加一个MenuStrip控件,然后按照你的菜单设计配置该控件,就得到了菜单栏。

然后设置主窗体WindowState属性,可以达到实现最大化/最小化/正常等三种情况:

this.WindowState = FormWindowState.Minimized;  // 最小化
this.WindowState = FormWindowState.Maximized;  // 最大化
this.WindowState = FormWindowState.Normal;     // 正常

------解决方案--------------------
引用:
往你的MDI主窗体上添加一个MenuStrip控件,然后按照你的菜单设计配置该控件,就得到了菜单栏。

然后设置主窗体WindowState属性,可以达到实现最大化/最小化/正常等三种情况:

C# code
this.WindowState = FormWindowState.Minimized;  // 最小化
this.WindowState = FormWindowState.……
初始化子窗体的WindowState为最大化
------解决方案--------------------
this.WindowState = FormWindowState.Minimized;
------解决方案--------------------
路过顺便学习!!
------解决方案--------------------
引用:
MDI子窗体最大化时在主窗体的右上角有3个图标(最小化,最大化,关闭),当我在MDI主窗体中添加菜单栏时,就会发现MDI的窗体的那3个图标在菜单栏上面,非常影响美感,我见过大家都是吧这个3个图标做在菜单栏上的,请问是怎么做的?

 
另稍微补充下,

MDI 这类窗体,父窗体都是作为框架 使用的, 而子窗体 ,也大多是模块的 管理窗体。如果功能简单 那么另说了。

一般不在子窗体 做菜单, 菜单都是 父窗体 建立的,自动就继承到子窗体里面了,如果你觉得哪个菜单不想在某个子窗体上现实,就做判断,visable = false 掉就可以了

所以你的问题 其实出现在 菜单 要在父窗体开发,不要在子窗体开发,父窗体 是一个 菜单, 工具条的全集合。

下此要注意





------解决方案--------------------
引用:
好像大家没理解我的意思,我是想吧MDI子窗体的那3个图标(最小化,最大化,关闭)合并到,MDI主窗体上,就是主窗体的菜单栏的右边。我现在的状况是主窗体菜单栏一行,那3个图标一行。

怎么做额,,,


子窗体最大化的时候,最小化等三个图标本来就是在主窗体菜单栏的最右边的呀。
lz你是不是想子窗体非最大化的时候也是这样的效果?
------解决方案--------------------
你想要把 父窗体和子窗体的 最大,最小, 关闭,按钮合并,这是没有办法做到的,
你最多是 把子窗体的  最大,最小,隐藏,默认最大,

毕竟这还是两个窗体,父窗体也有自己的 ,大,小变化。
子窗体也是。
------解决方案--------------------
引用:
我的菜单栏就是在主窗体啊,做子窗体上那得多麻烦啊。 子窗体的那3个按钮如何合并到主窗体的菜单栏上。

回复8楼,
我做出来之后子窗体最大化时,那3个图标并没有合并到主窗体的菜单栏上,我就是想最大化时合并,请问,是不是我哪里写错了,还是说我必须得,调整一下布局什么的?

谢谢


我刚才做了一个简易的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();