所有的MDI窗体子窗体都派生自A窗体,A窗体不直接产生窗体对象,A窗体设置WindowState = FormWindowState.Maximized,在生成子窗体对象的时候,通过下断点跟踪发现,InitializeComponent函数中确实将WindowState 设置为FormWindowState.Maximized,但是问题是在load函数中WindowState 的值就变为了Normal,只能手动写代码修改,百思不得其姐啊???原因可能是以为MDI的问题,做一个非MDI窗体就没这个问题,或者是子窗体继承的问题,有知道的同学吗??

解决方案 »

  1.   

    frmMDIChild child = new frmMDIChild();child.MdiParent = this;child.WindowState = FormWindowState.Maximized;child.Show();
      

  2.   

    这个貌似没有更好的办法,只能在显示窗体的时候或在窗体的Load事件中指定
      

  3.   

    这其实是一个bug,我用的是2008,mix和normal属性都可以。只是最大不行,只能手动修改。有没有什么资料能把C#的消息机制讲的明白一些,比如先触发哪个消息,后触发哪个消息、什么操作会触发什么消息之类的介绍一下???
      

  4.   

    据我猜测,load的时候窗体还没有完成,至少布局还没有完成,所以各个属性的值都不正确,比如在load里ClientRectagle就不是正确的数值,要等到show的时候才能正确。