情况是这样的,通过C++Builder XE新建一个VCL Forms Application,默认为Form1,然后再新建一个Form,默认为Form2,
在Form1上添加一个按钮用于调用Form2,Form1和Form2的FormStyle属性都是fsNormal,为什么每次调用Form2时,窗体总是在Form1之前,就算我单击Form1使得Form1称为活动窗体,但是依然在Form2下面,哪位高手帮忙解释下,谢谢!

解决方案 »

  1.   

    你用Form2.ShowModal 了吧,改成Form2.Show
      

  2.   

    不是,就是使用Form2.Show();如下图所示
      

  3.   

    估计是你把form2的style设置成置顶了,点中form2,在Object Inspector中把FormStyle改成fsNormal就可以了。
      

  4.   

    刚试了下,的确有楼主的情况。但是,在Form1上,两个按钮,分别Show出Form2和Form3,就可以实现点击Form2就Form2置顶,点击Form3就Form3置顶。应该是Form1被默认为主窗体了吧~~
      

  5.   

    用Delphi试不会这样呀,你试试自己Create Form2会怎样,不用编译器自动创建Form2
      

  6.   

    @早打大打打核战争 :FormStyle属性都置为fsNormal的
      

  7.   

    @hongss :我手头上有一个别人开发的project,里面有一个主窗体,很多个子窗体,通过主窗体将子窗体都调用出来后,单击任何一个窗体都会使得其置顶,而且code里面并没有额外添加做置顶的处理,所以我就比较纳闷,这个是如何实现的,比对了窗体的属性设置,都一样.
      

  8.   

    为什么不用MDI窗体?主窗体FormStyle设置成fsMDIForm,其他子窗体设置成fsMDIChild
      

  9.   

    我手头上有一个别人开发的project,里面有一个主窗体,很多个子窗体,通过主窗体将子窗体都调用出来后,单击任何一个窗体都会使得其置顶,而且code里面并没有额外添加做置顶的处理,所以我就比较纳闷,这个是如何实现的,比对了窗体的属性设置,都一样.
    ————————
    看看代码中有无CreateParams函数。
      

  10.   

    窗口的FormStyle属性都置fsNormal。这样,调用或点击,任何一个窗体,它都是前置。