C# 中子窗体最大化的问题

在 C# 中做 MDI 程序的时候,子窗体经常是被定义成最大化状态,在子窗体的属性里,把 WindowState 设置成 Maximized,然后在主窗体中用 frmChild.Show() 来显示,代码如下:

1
2
3
frmChild fc = new frmChild();
fc.MdiParent = this;
fc.Show();

运行的时候,会发现一个问题,子窗口并没有真正的最大化,而是窗口外框是最大化的,里面的控件还都是原来的位置,没有达到最大化的效果。
解决办法:在子窗体属性里把 WindowState 设置成 Normal,在代码中去设置这个属性值就可以了,代码如下:

1
2
3
4
frmChild fc = new frmChild();
fc.MdiParent = this;
fc.WindowState = FormWindowState.Maximized;
fc.Show();

这样,运行就正常了。

在 VS2005 和 VS2008 中都是这样。