WinForm MDI里打开一个子窗口是最大化效果,再打开其他子窗口如何保持原样?而这个最大化窗口也不会发生变化?
自己试着做了做,发现 要不全都最大化,要不全正常,不能保持 各是各的状态。
看看 谁能解决这个问题?注意实现的效果 是 打开一个子窗口的时候是最大化效果,然后在开一个子窗口的时候 是 普通效果,而第一窗口的最大化效果依然存在,就像桌布上放个碗一样。我发现我实现这个效果钻牛角尖了,看看各位大大有什么好的思路。不要想当然,想当然很怕的。我就吃了想当然的亏 哈哈,祝大家好运

解决方案 »

  1.   

    问题补充, 是不同的子窗口,比如 两窗口分别是 childwindows1,childwindows2,打开childwindows1的时候是最大化状态,然后在打开childwindows2,他选择的是普通状态,这个时候 childwindows1 也变成普通状态了。试问 怎么解决childwindows2打开的时候,childwindows1不受影响哈哈,祝大家好运
      

  2.   

    设置windowState,是设置窗体在加载时显示的状态 里面有几个值 最大化 普通 及 最小话默认设置为Normal 普通childwindows1为最大化 设置其windowState为最大化就行了(也可以通过设置其WIDTH和HEIGHT控制)
    childwindows2 保持原样就行了
      

  3.   

    抛去牛角尖不说, 如果真想解决这个问题,我已经完成的办法中有一个 就是把childwindow1 放在父窗口的一个容器当中,而不是直接用窗口显示出来。这样 childwindow1 和 childwindow2 就互相不受干扰了。当然我这个是曲线救国。我想看看还有没有更好的办法来解决它?更好的方法我没有想到。
      

  4.   

    LZ 哥们我真的被你说中了。想当然了。。
    呵呵刚才试了下 果然不行。。还希望LZ找到了答案通知我一声啊。。我也会试着解决。。
      

  5.   

    这样可以:childForm.WindowState = FormWindowState.Normal;
    childForm.Show();
    childForm.WindowState = FormWindowState.Maximized;
      

  6.   

    综合了上面各位的介意,我试了一下:
    首先设置所有 子窗口的时候,配置窗口的属性WindowState都为Normal;然后在你要打开的窗口是最大化的时候,则代码为:
    childForm1.WindowsState = FormWindowsState.Maximized;
    childForm1.Show();你要打开的窗口是默认大小的时候,则代码写成:
    childForm2.Show();
    childForm2.WindowsState = FormWindowsState.Normal;
      

  7.   


    我也有同样问题。你提到的,在父窗口上放容器的方法我也遇到一个连锁问题,那就是,这个容器遮挡了新建的CHILDWINDOW,怎么办?有什么方法让这个容器始终显示在最底层?