当前位置: 代码迷 >> C# >> C# winform 大侠一个简单的有关问题
  详细解决方案

C# winform 大侠一个简单的有关问题

热度:458   发布时间:2016-05-05 05:32:47.0
C# winform 请教各位大侠一个简单的问题
小弟 在winform 方面纯属菜鸟,但是因为项目没法子,遇到一个问题 请各位指点一下,  我建了一个mdicontainer, 里面有一个菜单,如下图


其中Form2窗体菜单  点开后是一个最大化的form窗体,  Form3窗体菜单 点开后是一个长度和宽度都有规定的form窗体,  现在是 我先点击form2窗体菜单 ,再点击form3窗体菜单  出现的form3窗体也是最大化了,不是按照规定的长度和宽度打开的;小弟也采取了一些措施在form3窗体的form_load方法里面   加入了一段代码 this.windowstate=FormWindowState.normal  结果是 form3窗体是按照规定的长度和宽度打开了 但是form2窗体就自动缩小了,并且程序的界面刷新也出现了问题。     请问 如何在点击form2窗体菜单,显示完最大化的form2窗体,再点击form3窗体菜单,  form3窗体  是按照规定的长度打开  同时  form2 也是最大化的。求指教  下面是一些  菜单的代码 : 

  private void form2窗体ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            bool find = false;
            foreach (Form myform in this.MdiChildren)
            {
                if (myform is Form2)
                {
                    myform.Activate();
                    myform.Show();
                    find = true;
                    break;
                }
            }
            if (!find)
            {
                Form2 f2 = new Form2();
                f2.MdiParent = this;
                f2.Show(); 
            }


           
        }

        private void form3窗体ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            bool find = false;
           
            foreach (Form myform in this.MdiChildren)
            {
                if (myform is Form3)
                {
                    myform.Activate();
                    myform.Show();
                    find = true;
                    break;
                }
            }
            if (!find)
            {

                 Form3 f3 = new Form3();
                    f3.MdiParent = this;
                    f3.Show();
               
            }


          
        }

------解决思路----------------------
MDI子窗体不可能出现一个最大化,其他正常显示的。你最大化了一个窗口,其他窗口肯定都隐藏了,能同时显示出来就肯定不会有一个是最大化的。除非你不用MDI子窗体,或者你的最大化不是系统的那种。
------解决思路----------------------
子窗口 最大化的时候,不会显示非最大化的窗口,因为被遮盖了。
你可以 显示form3的时候 把form2 给最小化了。
  相关解决方案