有3个窗体:Form1、Form2、Form3,其中Form1为主窗体,要求Form2显示在Form1前面,并且Form2显示时Form1不可用,而Form3始终显示在最前面。请问如何实现?

解决方案 »

  1.   

    form3.formstyle:=fsStayOnTop
    form2.ShowModal
    form1不变!
      

  2.   

    如果你说的form3始终在最前面是的话是不是在form2上触发的阿
    要使的化还是直接的showmodal就可以了
      

  3.   

    我的意思是工作在Form2上,Form3只是显示一些信息和图片在最前面。我现在采用间接的方法,将Form2最大化,遮挡Form1,同时将form2.formstyle:=fsStayOnTop。谢谢楼上两位的回答,不过没有达到我的要求。希望大家有更好的方法。
      

  4.   

    我的方法是有一点问题的!我自己也试了一把,那个form3好象上不来!研究中…………
      

  5.   

    formstyle:=fsStayOnTop是肯定不行的。要用winapi的一個致頂的API函數。formstyle:=fsStayOnTop在單窗體中可以使用,在多窗體中只要重複執定兩次就會失效。
      

  6.   

    致頂的API函數:
    SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width,Height, SWP_SHOWWINDOW);
      

  7.   

    用API了,但,还是实现不了楼主的要求,不信大家试一下!哈哈!
    而且,致顶的form关不了了!!
      

  8.   

    变通一下行不行,第一种方法,在form1的show事件中添加一个form3显示语句,然后调用楼上的楼上给出的函数置顶,然后在form1里面加个按钮,在按钮事件里面添加form2.showmodal。然后合理设计一下form3和form2显示时的位置,让他们之间不遮挡住对方。另外一种方法是把form1和form2编成一个程序,form3变成另外一个程序,然后进行调用。