我将一个Form的TopLevel属性设为false放入Main Form中,并将其最大化。
当Main form的大小变化时,内部的子窗体虽然仍然是最大化的状态,却不会随着Main form的size变化而更新其最大化时的size。
请问大家有什么好办法能解决这个问题么?谢谢。

解决方案 »

  1.   

    在父窗口的OnSize消息里面手动更改子窗口的大小为父窗口的大小
      

  2.   

    xsgluozi,怎样能手动更改子窗口最大化时的大小呢?如果直接改size属性的话,由于子窗口是最大化状态,其大小不会改变,而且子窗口在还原时就不能还原到初始大小了
      

  3.   

    可是xx.Dock = DockStyle.Fill这句话该写在哪啊 Load事件吗?
      

  4.   


    我需要的是子窗体可以在主窗体中最大化、最小化、还原大小
    所以不能设置Dock
      

  5.   


    我尝试了hook Main form的SizeChanged事件:        void MainForm_SizeChanged(object sender, EventArgs e)
            {
                foreach (Control control in this.Controls)
                {
                    Form form = control as Form;
                    if (form != null && form.WindowState == FormWindowState.Maximized)
                    {
                        form.WindowState = FormWindowState.Normal;
                        form.WindowState = FormWindowState.Maximized;
                    }
                }
            }这样做可以解决该问题,但是当Main Form中放入多个TopLevel为false的子窗体时,会出现闪烁的现象。
    有什么更好的办法吗?