none
关于c# winForm多文档窗口MDI的一个问题,求教!····· RRS feed

  • 问题

  • 在MDI父窗口中,有一个菜单,

    在父窗口加载的时候打开子窗口,将子窗口最大化,
    子窗口的窗体图标会显示到父窗口的菜单上面,

    现在我想要的是,将其子窗口的窗体图标在最大化的时候,不显示到父窗口的菜单上面,当然那些最小化,最大化,和关闭的按钮必要要有

    然后,在将子窗口还原或者最小化的时候,其窗体图标要显示出来,

    看了一个Java做的WinForm应用程序,其里面实现了这种功能,

    但是我在VS中找了好久,一直没有找出来,

    最接近的是将子窗口的ControlBox设置为false,但是这样的话,子窗口的最大化,最小化,关闭3个功能按钮都没有了。


    求教!`谢谢
    2009年12月12日 6:05

答案

  • 你好!
         我尝试了各种办法,但是似乎很难做到:
         1,将子窗体的ShowIcon属性设置成false,最大化后显示一个默认的图标
         2, 这种方法也同样无效
            protected override CreateParams CreateParams
            {
                get
                {
                    CreateParams cp = base.CreateParams;
                    cp.Style |= (int)0x00020000L;
                   
                    //cp.Style &= ~(int)0x00080000L;//去掉WS_SYSMENU
                    cp.Style |= (int)0x00020000L; //添加WS_MINIMIZE
                    cp.Style |= (int)0x00010000L;  //添加WS_MAXIMIZEBOX
                   
                    return cp;
                }
            }
         暂时没有想到好的方法来实现!
          
    周雪峰
    2009年12月12日 10:52
    版主

全部回复

  • 顺便问下,我如何获得Windows 图片和传真查看器的图标呢···

    2009年12月12日 7:06
  • 你好!
         我尝试了各种办法,但是似乎很难做到:
         1,将子窗体的ShowIcon属性设置成false,最大化后显示一个默认的图标
         2, 这种方法也同样无效
            protected override CreateParams CreateParams
            {
                get
                {
                    CreateParams cp = base.CreateParams;
                    cp.Style |= (int)0x00020000L;
                   
                    //cp.Style &= ~(int)0x00080000L;//去掉WS_SYSMENU
                    cp.Style |= (int)0x00020000L; //添加WS_MINIMIZE
                    cp.Style |= (int)0x00010000L;  //添加WS_MAXIMIZEBOX
                   
                    return cp;
                }
            }
         暂时没有想到好的方法来实现!
          
    周雪峰
    2009年12月12日 10:52
    版主
  • 谢谢,我是在这里看到一个Java做的程序是这样样子,所以想尝试下在.Net下实现

    2009年12月12日 13:57