关于控件焦点问题,100分

hanly2008 2006-01-04 08:26:06
现在有这样一个问题:
主程序的窗体为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能够用鼠标点击得到焦点可以输入!!!急~~~
...全文
155 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞天揽月 2006-01-04
  • 打赏
  • 举报
回复
问题是,你操作的是同一个窗体,
如果建立窗体的副本就可以了。
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;


merkey2002 2006-01-04
  • 打赏
  • 举报
回复
Form2.BorderStyle := bsNone;
//加了这个就OK了
hanly2008 2006-01-04
  • 打赏
  • 举报
回复
ccrun(老妖)兄,你的方法可以实现!
但是,新的问题来了,如果我把子窗体Form2关闭,再点主窗体上的Button1,Form2就显示不出来了,怎么解决?
谢谢.
ccrun.com 2006-01-04
  • 打赏
  • 举报
回复
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);

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧