以 VS2008 为例, CTRL+F 会弹出“查找和替换”窗口,如果此时最小化 VS2008 主窗口,“查找和替换”窗口就会跟着消失(内部窗口不会留在桌面上)。现在项目中需要点击“查找下一个”,弹出另一个窗口,要求最小化主界面时,系统内部所有的窗口都要消失,点击任务栏中系统任务时,所有的窗口都会显示在原来的位置。小弟半路出家,请各位高人指点一下,不胜感激

解决方案 »

  1.   

    开子窗的时候留个引用在主窗体的代码中 private void Form1_Resize(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    childform.WindowState = FormWindowState.Minimized;
                }
            }
      

  2.   


    对,现在内部窗口都是通过 new 出来的。 当最小化主界面窗体时,new 出来的窗体不会最小化。
      

  3.   

    晕了,我的怎么会呢?你new出来的窗体是不是子窗体
      

  4.   

    利用Application.OpenForms吧。当主窗体最小化或恢复时,相应的最小化和恢复打开的窗体
      

  5.   

    我没有使用 MDI , new 出来的不是子窗体
      

  6.   


            private void Form1_Resize(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    foreach (Form frm in Application.OpenForms)
                    {
                        if (frm.Text != "主窗体Text")
                        {
                            frm.Hide();
                        }                
                    }
                }
                else
                {
                    foreach (Form frm in Application.OpenForms)
                    {
                        if (frm.Text != "主窗体Text")
                        {
                            frm.Show();
                        }
                    }
                }
            }
      

  7.   


    this.isMdiContainer = true;
    MdiChild frmMdiChild=new MdiChild();
    frmMdiChild.MdiParent=this;
    frmMdiChild.Show();
    我试过 这样不行
      

  8.   

    感谢各位的帮忙! 特别感谢 starts_2000 和 BitCoffee 提供的方法。没分啦,顺便问下:VS2008中,在查找窗口打开并获得焦点的情况下,点工具栏上的调试按钮马上可以进入调试状态,而且点击操作不会让查找窗口失去焦点,也不会使主界面窗体获得焦点。而在我的系统中,需要点击两次才能触发主界面工具栏上的按钮,第一次点击使主界面获得焦点,第二次点击才能真正触发工具栏中的按钮操作。这样很不爽!应该如何解决,谢过先。
      

  9.   

    还有一个问题,内部窗体要求在主界面的上面,我把内部窗体的TopMost 属性设置为True,是达到了效果,不过每当打开系统其他任务时,如word、文件夹、网页,内部窗体仍然在顶部,会挡住刚打开的程序。请问如何才能像VS2008查找窗口那样实实在在就是VS2008内部窗口? 请高人赐教,非常感谢!
      

  10.   

    经过测试,MDI是不能满足要求的。无意间发现了一个不错的解决办法,只要把内部窗体的Owner属性设置为主窗体即可。不过还残留一个问题:如,在VS2008中,在查找窗口打开并获得焦点的情况下,点工具栏上的调试按钮马上可以进入调试状态,而且点击操作不会让查找窗口失去焦点,也不会使主界面窗体获得焦点。 而在我的系统中,需要点击两次才能触发主界面工具栏上的按钮,第一次点击使主界面获得焦点,第二次点击才能真正触发工具栏中的按钮操作。是不是要通过 系统API实现???
      

  11.   

    在WindowFrom中做查找,但是只能查找到最先一个是怎么回事???