请教大家一个问题,在一个窗体创建过程中,他的事件的顺序一般是
OnCreate->OnShow,
如果调用窗体和被调用窗体的窗体类型都是fsNormal,那么只有在调用
被调用窗体的show方法时候才会触发OnShow事件,但是如果调用窗体的类型
是fsMDIForm,那么被调用窗体在触发完OnCreate事件之后,会接着触发OnShow
事件,并且会执行在Onshow事件中的代码,而不会等到在执行Show方法的时候才触发,请问这是怎么回事啊!!

解决方案 »

  1.   

    MDIForm和MDIChildForm默认Visible都是True(并且MIDChildForm的Visible在设计期是不能改为False的),所以是不需要显式调用Show方法就自动显示的,而Normal窗体默认是False(如果改为True也会自动显示的)
     ________________________欢迎访问和宣传我的论坛http://hthunter.vicp.net/
      

  2.   

    感谢您的回答,那么请问,如果我想一个mdichild窗体在创建的时候不让他show,等到创建完成之后给他赋一些属性值,然后通过调用show方法让它显示,这样在onshow的事件处理中就可以按照所赋的值进行相关操作了,这样的话,应该如何写,是否要在oncreate时间里面把visible属性设置为false?
      

  3.   

    把你OnShow事件的代码移到OnActivate事件中可以达到你的要求。
      

  4.   

    可以在设计期把FormStyle设置为fsNormal、Visible设置为False,则Create之后可以做一些你需要的设置再用代码把FormStyle设置为fsMDIChild并Show出来
     ________________________欢迎访问和宣传我的论坛http://hthunter.vicp.net/