现在有2个窗口 from1 和 from2
from1中有个 panel
from1上还有个 button
点 button时  from2.ShowDialog();from2上有个最大化按钮,点击 最大化按钮 要让 from2 显示到 panel中,点最还原时 又需要出来  
高手们,这个可做吗?

解决方案 »

  1.   

    你的Form2是不能整体放倒Form1中去的,所以你要做个View,这个view就是你的Form2的内容、、。
    这样可明白?
      

  2.   

    当然可以 我记得有个mainform  就是主窗体的意思具体我不记得了,太长时间没摸 winform了
      

  3.   

    我的建议是做假...这么说你可能不大理解我这么说吧.
    首先你单击窗体A的按钮1,ShowDialog出子窗体B.单击B窗体的最大化按钮时,关闭B窗体,并返回信息给A窗体让A窗体的panel显示出B窗体            Form2 f2 = new Form2();
                f2.TopLevel = false;
                f2.Parent = this.panel1;
                f2.Show();点击B窗体的按钮时再次截获消息,关闭panel上的B窗体,然后重新ShowDialog出B窗体.
    这么做可能有些恶心,但是对应你的需求,我认为你应该去查看一下MDI模式的窗体的样式,我觉得这个才是你的需求.
      

  4.   


            protected override void OnResize(EventArgs e)
            {
                if (WindowState == FormWindowState.Maximized)
                {
                    //
                    MessageBox.Show("max");
                }
                else if (WindowState == FormWindowState.Minimized)
                {
                    //
                    MessageBox.Show("min");
                }
            }最大化最小化事件http://www.cnblogs.com/kingdi/archive/2006/09/04/494740.html
    用MDI处理。
      

  5.   


    MDI能不能 在主窗体 部分的? 而不是 整个都是 MDI
      

  6.   


    说明:form1设计文件
      public System.Windows.Forms.Panel panel1;
      
    //form1
     private void button1_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.Owner = this;
                f2.Show();
            }
    //form2
     Control mypa;
            
            private void Form2_Resize(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Maximized)
                {
                    
                    this.Parent = mypa;
                    this.TopLevel = true;
                    this.WindowState = FormWindowState.Maximized;
                }            if (this.WindowState == FormWindowState.Minimized)
                {
                    Form1 f1 = (Form1)this.Owner;
                    this.TopLevel = false;
                    this.Parent = f1.panel1;
                }
        
            }        private void Form2_Load(object sender, EventArgs e)
            {
                mypa = this.Parent;
            }
      

  7.   

    放大时,窗体消失了,,,自己解决下,忘记了窗体本来this.Parent是什么值了,,
      

  8.   

    就是你做个一UserControl 把你要展现的东西放在里面,然后将这个UserControl放倒Form2和Form1的Panel中去 不就OK啦