请问!请问如何实现在一个输入框按回车键后光标跳到下一个输入框?

liuwc18 2003-08-21 04:28:32
谢谢!
...全文
424 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy_0325 2003-09-17
  • 打赏
  • 举报
回复
IF KeyDown(KeyEnter!) THEN
send(handle(this),256,9,long(0,0))
end if
设置控件的taborder
workhand 2003-09-17
  • 打赏
  • 举报
回复
如果是dw里可以参考:http://expert.csdn.net/Expert/topic/2267/2267582.xml?temp=.9571039
flyhot 2003-09-17
  • 打赏
  • 举报
回复
回复人: joss(季节...秋至) ( ) 信誉:158

真牛!!!!!!!!!!!
joss 2003-09-17
  • 打赏
  • 举报
回复
Api实现
申明函数
//-------------回车转移焦点---------------
Subroutine keybd_event(int bVk,int bScan,ulong dwFlags,ulong dwExtraInfo) LIBRARY "user32.dll"
在窗口keydown事件中写代码:(Event ID:pbm_keydown)
//----------------回车切换控件焦点!
if key = keyenter! then
keybd_event(9,0,0,0)
keybd_event(9,0,2,0)
end if
//----------------
workhand 2003-08-22
  • 打赏
  • 举报
回复
在sle_1中增加自定义用户事件:ue_keydown (pbm_dwnkey)
IF KeyDown(KeyEnter!) THEN
sle_2.setfocus()
End iF
不过这要没个控件都写代码,xxx2000()兄的方法很好啊
fllfeng 2003-08-22
  • 打赏
  • 举报
回复
key事件下写代码,我一直这么做
modify事件和key是有区别的,切记
stolywang 2003-08-22
  • 打赏
  • 举报
回复
大家可以试试send(handle(this),259,0,0);(在modified事件里)
欣萱好米 2003-08-22
  • 打赏
  • 举报
回复
哦﹗我搞錯了﹐我的寫的系統是在一個較完善的平台上作的
我看了一下了代碼
也是用戶自定儀的﹗
在祖窗口中的key()中添加
代碼如下:
GRAPHICOBJECT cb_control
cb_control=GETFOCUS()

CHOOSE CASE KEY
CASE KEYRIGHTARROW!
IF TYPEOF(cb_control)=COMMANDBUTTON! THEN
keybd_event(9,0,0,0)
keybd_event(9,0,2,0)
END IF
CASE KEYDOWNARROW!
choose case typeof(cb_control)
case dropdownlistbox!
case else
keybd_event(9,0,0,0)
keybd_event(9,0,2,0)
end choose
CASE KEYLEFTARROW!
IF TYPEOF(cb_control)=COMMANDBUTTON! THEN
keybd_event(16,0,0,0)
keybd_event(9,0,0,0)
keybd_event(16,0,2,0)
keybd_event(9,0,2,0)
END IF
CASE KEYUPARROW!
keybd_event(16,0,0,0)
keybd_event(9,0,0,0)
keybd_event(16,0,2,0)
keybd_event(9,0,2,0)
CASE KEYENTER!
choose case typeof(cb_control)
case COMMANDBUTTON!,PictureButton!
cb_control.TRIGGEREVENT(clicked!)
case DATAWINDOW!
// case checkbox!
case else
keybd_event(9,0,0,0)
keybd_event(9,0,2,0)
end choose
END CHOOSE

這些代碼你不一定全能用﹐根據你自己的情況作!
xxx2002 2003-08-21
  • 打赏
  • 举报
回复
自建可视用户对象 ,从singlelineedit继承

新建用户事件 event id pbm_keydown

加代码

IF KeyDown(KeyEnter!) THEN
send(handle(this),256,9,long(0,0))
end if

用的时候 继承 按正常方式设置好tab键次
zc1966 2003-08-21
  • 打赏
  • 举报
回复
在sle_1中增加自定义用户事件:ue_keydown (pbm_dwnkey)

在该用户事件写如下语句
if KeyDown(KeyENTER!) THEN
sle_2.setfocus()
END IF

sle_2和sle1一样操作即可,。

runsoft 2003-08-21
  • 打赏
  • 举报
回复
在windowd的KEY事件中加上上面的代码是可以的
liuwc18 2003-08-21
  • 打赏
  • 举报
回复
TO加纳兄:我试过,好象不行耶!
runsoft 2003-08-21
  • 打赏
  • 举报
回复
Graphicobject which_cont //控件名称变量
commandbutton cb_which //cb变量

which_cont=GetFocus() //得出当前具有焦点的控件名称

if keydown(keyenter!) then
if typeof(which_cont)=commandbutton! then//如果是cb得到焦点时,执行单击事件。
cb_which=which_cont
cb_which.triggerevent(clicked!)
end if
elseif keydown(KeyLeftArrow!) or keydown(KeyRightArrow!) or &
keydown(KeyUpArrow!) or keydown(KeyDownArrow!) then

post(handle(which_cont),256,9,0) //发一个 Tab 命令

end if
jethao 2003-08-21
  • 打赏
  • 举报
回复
还需要申明:外部动态库函数
subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library 'user32.dll'
jethao 2003-08-21
  • 打赏
  • 举报
回复
自定义用户事件:ue_keydown (pbm_dwnkey)
integer VK_TAB = 09
integer VK_SHIFT = 16

if key = KeyUpArrow! then
ib_up = true
keybd_event(VK_SHIFT,0,0,0) //°´ÏÂshift
keybd_event(VK_TAB,0,0,0) //°´ÏÂtab
keybd_event(VK_TAB,0,2,0) //ÊÍ·Åtab
keybd_event(VK_SHIFT,0,2,0) //ÊÍ·Åshift
return 1
end if
if key=KeyEnter! or key = KeyDownArrow! then
ib_up = false
keybd_event(VK_TAB,0,0,0) //°´ÏÂtab
keybd_event(VK_TAB,0,2,0) //ÊÍ·Åtab
return 1
end if
polugen 2003-08-21
  • 打赏
  • 举报
回复
在KEY里
if KeyDown(KeyENTER!) THEN
sle_2.setfocus()
END IF
欣萱好米 2003-08-21
  • 打赏
  • 举报
回复
上面的方法可以實現﹐但是要你在每一個控件中添加控制代碼﹐不划算﹗
你在菜單format--->tab order打開﹐界面控件會顯示它的跳轉次序﹗
你不想讓它得到焦點﹐就設為零﹐其他的就按次序設置﹗就可以了﹗
catty1338 2003-08-21
  • 打赏
  • 举报
回复
同意上eastpond(东塘)大哥看法
eastpond 2003-08-21
  • 打赏
  • 举报
回复
在输入sle_1 框的modifed事件中定sle_2.setfocus()

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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