当前位置:编程学习 > C#/ASP.NET >>

如何解决MDI子窗口最大化后标题栏显示在父窗口的菜单栏之上?

程序不是我写的,MDI子窗口最大化后标题栏显示在父窗口的菜单栏之上。
我在VS2005新建一个MDI程序运行后,子窗口的标题栏是现实在主窗口的菜单栏最前面位置的,不是在菜单栏的上面。不知道这是为什么?谢谢各位! --------------------编程问答-------------------- 这就是MDI的方式 --------------------编程问答-------------------- 为什么两个程序子窗口标题栏显示的位置不一样呢?如果是MDI的方式,那风格应该是统一的呀。 --------------------编程问答-------------------- 菜单栏设置的不合适可能会这样.

你确认是不是Dock.Top --------------------编程问答-------------------- 两个程序中菜单栏的Dock属性都为Top,可为什么显示的方式不一样呢? --------------------编程问答-------------------- 你把控件重新添加一下,或都新建一个新的窗体,
因为控件和它的添加顺序有关系,所以可能会出现想不到的问题.

当然你可以手动的来调整Controls.Add的顺序,但是这样的比较不好调且易错,所以你最好新建一个窗体把这个删除掉. --------------------编程问答-------------------- 我试着新建了一个新窗体,下面是单击菜单是执行的语句,可在最大后该窗体的标题栏还是显示在菜单栏的上面。

ForLin fLin = new ForLin();
fLin.MdiParent = this;
fLin.Show(); --------------------编程问答-------------------- 一定是你的和窗体上的菜单栏的问题,正常的是没有问题的!
你多试下找找原因! --------------------编程问答-------------------- 多谢楼上热心的解决我的问题

MDI主窗口、菜单栏、子窗口的所有属性、方法我都检查过了,没有发现两个程序(原来的、我新建测试用的)有什么不同的地方。

再次谢谢各位! --------------------编程问答-------------------- this.MainMenuStrip = menuStrip; --------------------编程问答--------------------
引用 9 楼 tianxiaoqin1310 的回复:
this.MainMenuStrip = menuStrip;


正确. --------------------编程问答-------------------- 太牛比了,我找遍整个网络,在这里解决了 --------------------编程问答-------------------- 这个 this.MergedMenu = menuStrip; 加在哪儿哦? --------------------编程问答--------------------
引用 12 楼 ezhanglihong 的回复:
这个 this.MergedMenu = menuStrip; 加在哪儿哦?


晕 知道了 还有,写错了 是this.MainMenuStrip = menuStrip; 
--------------------编程问答-------------------- 我也遇到了这个问题,用的是VB2005,可是me.MergedMenu = menuStrip这句添加上去还是不行啊。具体添加到什么位置,怎么操作呀?多谢赐教! --------------------编程问答--------------------
引用 9 楼 tianxiaoqin1310 的回复:
this.MainMenuStrip = menuStrip;


正解
我自己建的非父子窗体 menu控件 不能显示
估计是没有设置默认的主menu --------------------编程问答--------------------
引用 9 楼 tianxiaoqin1310 的回复:
this.MainMenuStrip = menuStrip;
牛人!!!! --------------------编程问答-------------------- 我在网上看到有个人是这么说的,是菜单的名字命名有问题,如果菜单命名是这个MainMenuStrip就会出现成这个问题,我试了下的确是。你们改个名字看看,我也遇到这个问题了。很郁闷 --------------------编程问答-------------------- frm.Show(this.Owner as System.Windows.Forms.IWin32Window); --------------------编程问答--------------------
引用 9 楼  的回复:
this.MainMenuStrip = menuStrip;


果然可以,什么原理呢,设置或获取窗体的主菜单容器。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,