2 xcs2008 xcs2008 于 2015.07.14 19:40 提问

MDI子窗体最大化显示问题

图片说明
在MDI子窗体
1、放了一个菜单 Me.MenuStrip1 .Dock =DockStyle.Top;
设置“窗口”菜单存放子窗体标题
Me.MenuStrip1.MdiWindowListItem = 窗口ToolStripMenuItem;

2、放了一个Panel1控件 Me.Panel1 .Dock =DockStyle.Fill;

3、在Panel控件上放了一个按钮,用于打开一个子窗体,click事件代码为:
Dim frm As Form2 = New Form2()
frm.MdiParent = Me
frm.Parent = Me.Panel1
frm.Show()
运行结果为,子窗体显示在了Panel控件之上,但子窗体最大化后,如上截图,子窗体的标题栏不能与主窗体标题合并显示,且窗口菜单中也不显示子窗体的标题?请达人解惑?

7个回答

xcs2008
xcs2008   2015.07.14 19:45

理想的显示效果为,Panel隐藏后的显示效果;
即 Me.Panel1.Visible = False 如下图显示:
图片说明
如果不隐藏Panel1控件,应如何设置?

xcs2008
xcs2008   2015.07.14 19:47

即不隐藏Panel1控件,子窗体最大化后显示效果;
图片说明

caozhy
caozhy   Ds   Rxr 2015.07.15 05:52

frm.Parent = Me.Panel1
->
frm.Parent = Me

xcs2008
xcs2008   2015.07.15 08:18

Dim frm As Form2 = New Form2()
frm.MdiParent = Me
frm.Parent = Me.Panel1
frm.Parent = Me
frm.Show()

这样子窗体也看不到了;

CSDNXIAOC
CSDNXIAOC   2015.07.16 15:29

子窗体一旦最大化后,子窗体的图标就越过菜单栏跑到最上面去了,他的位置高过了菜单栏,弄的界面很难看的解决办法!!!!! 在主窗口属性中把 MainMenuStrip设置成你的主菜单,也可在代码中加入:this.MainMenuStrip = this.menuMain;......
答案就在这里:MDI 子窗体最大化时显示
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

xcs2008
xcs2008   2015.07.16 18:15
    Dim frm As Form2 = New Form2()
    frm.MdiParent = Me
    frm.Parent = Me.Panel1
    frm.Parent = Me
    Me.MainMenuStrip = Me.MenuStrip1
    frm.Show()

            加上这句还是不行,看不到子窗体;
               Me.MainMenuStrip = Me.MenuStrip1应加在什么地方可以;
xcs2008
xcs2008   2015.07.25 13:30

MDI主窗体中,添加了Panel控件,在Panel控件中加载的窗体,窗体上的控件失去焦点,见网上有许多类似的疑问,但都没有答案;

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
WinForm(C#)中MDI子窗体最大化的问题
 “用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化: 1、把父窗体的IsMdiContainer设置为True; 2、把子窗体的WindowState设置为Normal; 3、在父窗体中用下面的方法打开子窗体: private void me
限制MDI子窗体的最大化后,没有自己的标题栏。
procedure TExplorer.WMMax(var Msg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;begin   //什么都不用写。end;procedure TExplorer_Frm.WmSize(var msg: TWMSIZE);begin  if msg.SizeType = SIZE_MAXIMIZED then    msg
MDI父窗体中的子窗体最大化后消除子窗体在父窗体菜单栏中的图标
Winform的MDI父窗体中的子窗体最大化后消除子窗体在父窗体菜单栏中的图标。
去除MDI子窗体最大化时的默认图标
MDI程序中,子窗体最大化后,子窗体的icon会自动显示在主窗体菜单的左上角。根据子窗体Icon设置的不同,默认情况下会出现下面的两种情况,而且这两种情况都让人抓狂: 1 子窗体设置了自定义的icon,比如下图中子窗体的icon设置为“放大镜”图标,主窗体菜单左上角显示“放大镜”图标,乍看好像显示正确,实际不然,如果在最大化状态下,继续显示新的子窗体时,则容易出现图2所示的问题,即显示一个丑陋的
解决winform中mdi子窗体加载时显示最大化最小化按钮的方法
解决winform中mdi子窗体加载时显示最大化最小化按钮的方法场景:在mid加载子窗体的时候如果指定WindowState为Maximized,加载完成后主窗体会显示最大化、最小化、关闭的按钮图标。解决方法: 1.更改主窗体FormMain的属性。制定MainMenuStrip的属性为menuStrip1控件。menuStrip1控件就是主窗体上的菜单栏。 2.在menuStrip1控件的It
解决WinForm(C#)中MDI子窗体最大化的问题(VB.net中也适用)
我用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化: 1、把父窗体的IsMdiContainer设置为True; 2、把子窗体的WindowState设置为Normal; 3、在父窗体中用下面的方法打开子窗体: private void menu
C#子窗口切换并显示最大化问题
“用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化: 1、把父窗体的IsMdiContainer设置为True; 2、把子窗体的WindowState设置为Normal; 3、在父窗体中用下面的方法打开子窗体 private void testToo
C#mdi子窗体最大化问题
 c# MDI子窗体最大化2008-08-15 13:23有时候我们需要在子窗体显示的时候就是最大化(也就是填充了整个父窗体),但通常会遇到以下麻烦:如果在 Visual Studio 2005里通过属性工具栏设定了子窗体的 WindowState 为 Maximized,然后在运行过程中会发现子窗体实例化时不会最大化,而是当改变了父窗体的大小之后才随即最大
C#之WinForm子窗体最大化显示异常问题及解决方案
WinForm中,MDI子窗体最大化后,会使子窗体的图标与主窗体的菜单栏合并,影响显示效果,处理方法如下: 在主窗体的主菜单(假设叫做MainMenu)的ItemAdded事件中加入如下代码即可 private void MainMenu_ItemAdded(object sender, ToolStripItemEventArgs e) { if (e.Item.Text.Len
C# MDI子窗体最大化后与主窗体不融合解决方法
如果出现下面图示情况: 最大化后: 移动可以遮住菜单栏: 大家要知道,C#已经对子窗体最大化后,子窗体的标题栏会和父窗体的菜单栏融合。子窗体最小化后有个小窗体会紧挨状态栏停靠: 造成这种情况的原因: private void Form1_Load(object sender, EventArgs e)  中加入了如下语句: child.TopL