DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: vic_168999
今日帖子: 2
在线用户: 9
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 wujer (wujer) ★☆☆☆☆ -
普通会员
2004/4/29 11:10:29
标题:
关于PageControl控件与其他控件之间焦点转换的问题! 浏览:2074
加入我的收藏
楼主: PageControl里面我设了N页,我也设了几个快捷键,对应PageControl的每一页.
点击快捷键时我都对每个激活的页的某个控件设了焦点(SetFocus).
当焦点在PageControl时,无论转换到哪一页,SetFocus都成功了.

但是当我的焦点在PageControl外的某个控件时,我按快捷键转换PageControl页时,页面转换了,但我写的代码(SetFocus)却没有成功将焦点转换到PageControl里面的控件上.

有哪个高手碰到过吗?请帮小弟解解难吧!不知大家明白我的意思了吗?
----------------------------------------------
wujer
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/4/29 11:18:26
1楼: 当你的PageControl中的某个控件获得了焦点,那么你用切换PageControl页面的时候会自动给当前激活的页面中的某个控件设置焦点
但是如果是PageControl外的某个控件获得了焦点的话就没有那个好的事了


你可以在PageControl的OnChange或OnChanging事件中来判断当前页面然后手动SetFocus
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 wujer (wujer) ★☆☆☆☆ -
普通会员
2004/4/29 11:20:53
2楼: procedure TForm1.PageControl1Change(Sender: TObject);
begin
//   self.SetFocus;
   PageControl1.SetFocus;
   PageControl1.ActivePage.SetFocus;
   if PageControl1.ActivePage = TabSheet1 then
   begin
      TabSheet1.SetFocus;
      Edit3.SetFocus;
   end
   else if PageControl1.ActivePage = TabSheet2 then
      Edit4.SetFocus
   else if PageControl1.ActivePage = TabSheet3 then
      Edit5.SetFocus;
end;

你自己看看你的代码吧,完全没有用,大家可以自己试试呀.肯定没有什么人会去注意这类问题的.
----------------------------------------------
wujer
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/4/29 11:28:32
3楼: 谁说没有用的?

void __fastcall TForm1::PageControl1Change(TObject *Sender)
{
    ((TWinControl*)(PageControl1->ActivePage->Controls[0]))->SetFocus();
}

上面的是BCB的代码
在PageControl页面切换的时候当前激活的页面中第一个控件获得焦点

另外你不要那么频繁的SetFocus
比如你要让TabSheet1的Edit1获得焦点只要直接Edit1.SetFocus就行了
但一定要先保证TabSheet1是当前激活的页面
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/4/29 11:29:40
4楼: 换成Delphi的就是

TWinControl(PageControl1.ActivePage.Controls[0]).SetFocus;
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 wujer (wujer) ★☆☆☆☆ -
普通会员
2004/4/29 11:49:43
5楼: 我晕呀,被微软耍了一次了,问题已经解决了,不过你们都理解错了.

主要是Delphi的帮助也太垃圾了,不说清楚的,看以CSDN才知道错误原因.
----------------------------------------------
wujer
作者:
男 wujer (wujer) ★☆☆☆☆ -
普通会员
2004/4/29 11:50:13
6楼: 多谢大家的关注.
----------------------------------------------
wujer
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行91.79688毫秒 RSS