关于获得子窗体获得焦点的问题

flyover2002 2004-11-29 04:04:16
我编写了一个程序,采用的是父子窗体。子窗体的作用是数据输入,有多个edit控件和一个保存按钮,另外还在子窗体FormKeyDown中定义了功能键F10,按F10就触发保存按钮,保存完后我把焦点放到第一个edit控件。
问题:
当我输入完后,如果用鼠标单击保存按钮,程序正常运行,焦点移到第一个edit控件。如果用F10保存,后焦点虽然移到第一个edit控件,然后在键盘输入一个字符,edit控件里不会有这个字符,当输入第二个字符才会出现。也就是说F10保存后,焦点转移正常,但不能马上输入数据,至少要按一下键盘或者鼠标点击一下窗体后才能输入
...全文
282 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyover2002 2004-12-03
  • 打赏
  • 举报
回复
我用了一个办法,就是保存完以后加入一个语句模拟单击键盘的字母键,那样就正常了.不知道其他还有何方法.算了结贴了.
redmoon_line 2004-12-02
  • 打赏
  • 举报
回复
是不是机的反映慢,是关于硬件的吧,
要不你试试edit1.setfocus
flyover2002 2004-12-02
  • 打赏
  • 举报
回复
to:whythinkwhy(小生)
在afterpost事件中写入editx.setfocus不行的,我用的是ADOQUERY,执行存储过程,而且这个ADOQUERY是很多子窗体共用的。
flyover2002 2004-12-02
  • 打赏
  • 举报
回复
可是那样也要多按一个键
flyover2002 2004-12-02
  • 打赏
  • 举报
回复
to:nyf1220
先setfocus后保存不行的。
我在setfocus后加了
Application.MessageBox('保存成功!','提示',MB_ICONINFORMATION)
提示窗口关闭后就可以正常输入了。
flyover2002 2004-12-02
  • 打赏
  • 举报
回复
to redmoon_line(真的不知道)
不是机子反应慢,等多长时间都没有用的。
nyf1220 2004-12-01
  • 打赏
  • 举报
回复
要不你先setfocus然后再保存
whythinkwhy 2004-12-01
  • 打赏
  • 举报
回复
你可以在afterpost事件中写入editx.setfocus 试试
qingfengsishi 2004-12-01
  • 打赏
  • 举报
回复
要不,你重新建立一个子窗体再测试一次??
我也学习中!!!
flyover2002 2004-11-30
  • 打赏
  • 举报
回复
up,有高手知道吗?
flyover2002 2004-11-30
  • 打赏
  • 举报
回复
to : qingfengsishi(又回到delphi)
不好意思。你的意思是不是
savedata;//保存数据
parentform.show; //parentform是父窗体show,还是子窗体show???
editx.setfocus;
用上述方法,即父子窗体show我都尝试过,结果还是一样的。
不过还是谢谢你了。
qingfengsishi 2004-11-30
  • 打赏
  • 举报
回复
是不是这样的原因:
因为点击BUTTON后,子窗体的焦点还在本身。F10的时候,虽然执行代码,焦点是否转移到父窗体?
能否先测试一下窗体的焦点转移?
svaedatda;
parentform.show; //加入一个子窗体获得焦点?(如果焦点有转换后的话,加这句,如果无的话,
我也不知道怎么处理了。)
editx.setfocus; //这样吗?
flyover2002 2004-11-30
  • 打赏
  • 举报
回复
to whythinkwhy
F10保存后,在输入前,焦点不会闪烁,一定要单击一下窗体或键盘单击一下,光标才闪烁.
flyover2002 2004-11-30
  • 打赏
  • 举报
回复
to nyf1220
是这样的我的保存数据的代码在button下,保存数据代码的最后是editx.setfocus;//;在子窗体FormKeyDown过程中定义
if key=VK_F10 then
cxButton1.Click;
whythinkwhy 2004-11-29
  • 打赏
  • 举报
回复
f10保存后
再输入前,焦点是否在闪烁?
nyf1220 2004-11-29
  • 打赏
  • 举报
回复
f10里怎么写的?
svaedatda;
editx.setfocus;//这样吗?
flyover2002 2004-11-29
  • 打赏
  • 举报
回复
请问怎么解决?

5,390

社区成员

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

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