问个Tpagecontrol的问题! ( 积分: 0 )

  • 主题发起人 主题发起人 mill666
  • 开始时间 开始时间
M

mill666

Unregistered / Unconfirmed
GUEST, unregistred user!
我在form1上放置一个pagecontrol1,然后新增两个页page0,page1,
然后在page0上放置两个edit1,edit2,然后在page1上放置两个edit3,edit4,
我想达到一下效果:
当焦点处于edit2的时候,按键盘tab键,让焦点自动跳到edit3;其实就是想达到页面间的自动切换,而不需要去按每个page上的tabs按钮。
 
我在form1上放置一个pagecontrol1,然后新增两个页page0,page1,
然后在page0上放置两个edit1,edit2,然后在page1上放置两个edit3,edit4,
我想达到一下效果:
当焦点处于edit2的时候,按键盘tab键,让焦点自动跳到edit3;其实就是想达到页面间的自动切换,而不需要去按每个page上的tabs按钮。
 
如果是固定了,那你可以在edit2的onkeydown事件中写代码判断如果是VK_TAB是就将pagecontrol1的activepage设置为page1(tabsheet吧)。
 
关键问题不是固定的,page是动态生成的,page 里面的控件也是动态生成的。
关键的问题是怎么检测到目前这个控件是该page的最后一个控件,如果是最后一个控件,就切换page,如果不是就不切换。
 
你可以这样做:
在每个page界面上每生成一个控件就给分配一个tab键值,这样就可以知道是否是该page的最后一个控件,然后就很简单了
 
怎么根据tab键值判断是不是该page最后一个控件??
 
你可以定义一个整型变量来判断,当tab键值达到最大时就可以确定是否是最后一个控件
 
好像Tab键值不能改动啊。自动分配的,好像。
 
我说的是taborder属性,你可以试试,应该没问题
 
我说的就是这个taborder属性,好像不能改动,delphi自动分配的好像。
 
taborder是自动顺序排列的,你判断是不是最大值就行了

如果嫌麻烦,你动态创建的时候记录把所有能获得焦点的控件量存到一个公共变量里
然后按编号修改每个控件的tag属性

按tab的时候先判断该控件的tag是否小与公共变量,如果是继续,如果否则跳到下一页
 

Similar threads

后退
顶部