Delphi6的主窗口中有一panel1控件,其align属性为alclient,当用tform2.create(self)打开一个子窗口时,子窗口看不到,它在panel1的下面,只有把panel1关闭才可见,能不能使子窗口在panel1上方显示?

解决方案 »

  1.   

    把子窗口parent改为panel试试看
      

  2.   

    没错,form2显示前 
    form2.parent:=panel1;
      

  3.   

    form2:=Tfrom2.create(self);
    form2.parent:=panel1;
    form2.show;
    可以
      

  4.   

    我试过了,不行的.子窗口还是在panel1的下面,看不到的.
      

  5.   

    我把子窗口的formstyle设为fsnormal可以显示,但是子窗口中的文本框无法获得焦点,无法进行输入及修改.
      

  6.   

    panel1.sendtoback;
    from2.bringtofornt;
      

  7.   

    Focus(老鱼):
    我照你的做了,可以获得焦点,但是panel1就关闭了,我想让panel1继续显示,因为panel1上有许多有用的东西,能不能使form2在前面显示,后面panel1还保留着?
      

  8.   

    你这样
    你单独为form2设一个panel2
    把panel2放在panel1上
    align=albottom
    然后把FORM2 dock在panel2上
    你把 form2的window风格设为无标题栏就行了
      

  9.   

    还有一个办法简单点
    你在form2的关闭事件后把panel1.bringtofront就行了
      

  10.   

    目前也只有这个办法了,form2显示时关闭panel1,form2关闭时显示panel1.
      

  11.   

    用API, SetWindowPos();将form2置前。或者用BringWindowToTop();
      

  12.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      //form2.Parent := form1.Panel1;//该方法不建议使用
      form2.Dock(form1.Panel1,panel1.ClientRect);//建议使用停靠
      form2.Show;
    end;
    你也不知道
    搜索一下,这个问题
    我早就回答过了。
      

  13.   

    这个办法万分之万的没问题呀,你试了没有?
    from2.bringtofornt;
      

  14.   

    loolher(我是老虎):
    我试过了,但是panel还是在最上面,form2在panel的下边.
      

  15.   

    那Form2你以模态的方式显示不行吗,这样肯定在上面,但这样就失去多窗体的意义了;
      

  16.   

    form2:=Tfrom2.create(panel1);
    form2.parent:=panel1;
    form2.show;子窗口的formstyle要设为fsnormal