现在有这样一个问题:
主程序的窗体为Form1,另外一个窗体为Form2(代码设计阶段就设计好了这2个窗体),我在Form1主窗体上放了一个Panel1和Button1,然后在Button1的click事件中写如下代码:
Form2.Parent:= Form1.Panel1;
Form2.WindowState:= wsMaximized;
Form2.Left := 0;
Form2.Top  := 0;
Form2.Height := Form1.Panel1.Height;
Form2.Width  := Form1.Panel1.Width;
Form2.Show;这样,Form2就显示在主窗体Form1的Panel1里面了.如果我在Form2上放一个Edit1和Button2,奇怪的是Edit1无法用鼠标点击获得焦点,而Button2则可以用鼠标点击.请问大侠们,如何让Edit1能够用鼠标点击得到焦点可以输入!!!急~~~

解决方案 »

  1.   

    Form2.WindowState:= wsMaximized;
    Form2.Left := 0;
    Form2.Top  := 0;
    Form2.Height := Form1.Panel1.Height;
    Form2.Width  := Form1.Panel1.Width;
    Form2.Show;
    Windows.SetParent(Form2.Handle, Form1.Panel1.Handle);
      

  2.   

    ccrun(老妖)兄,你的方法可以实现!
    但是,新的问题来了,如果我把子窗体Form2关闭,再点主窗体上的Button1,Form2就显示不出来了,怎么解决?
    谢谢.
      

  3.   

    Form2.BorderStyle := bsNone;
    //加了这个就OK了
      

  4.   

    问题是,你操作的是同一个窗体,
    如果建立窗体的副本就可以了。
    var
      F2: TForm2;
    begin
      F2 := TForm2.Create(nil);
      F2.WindowState:= wsMaximized;
      F2.Left := 0;
      F2.Top  := 0;
      F2.Height := Form1.Panel1.Height;
      F2.Width  := Form1.Panel1.Width;
      F2.Show;
      Windows.SetParent(F2.Handle, Form1.Panel1.Handle);
    end;//在Form2 中添加下代码 释放窗体
    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := caFree;
    end;