在线等待?如何在编辑框中响应回车键比如说当用户按回车键后实现焦点转移等。

yaomengqiushui 2004-08-12 09:56:13
那位仁兄能不能具体的说说如何在编辑框中响应回车键比如说当用户按回车键后实现焦点转移等?
...全文
233 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
kyn 2004-11-01
  • 打赏
  • 举报
回复
subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library 'user32.dll'

在key事件中

integer VK_TAB = 09
if key = keyenter! then
keybd_event(VK_TAB,0,0,0)
keybd_event(VK_TAB,0,2,0)
return 1
end if
klbt 2004-08-12
  • 打赏
  • 举报
回复
自定义事件:ue_enter,
event id:pbm_dwnprocessenter
编码:
Send(Handle(this),256,9,Long(0,0))
return 1
zm1616 2004-08-12
  • 打赏
  • 举报
回复
可以直接在窗口的 key事件里写如下代码
IF KeyDown(KeyEnter!) THEN

GraphicObject which_control //对象

SingleLineEdit sle_which //单行文本编辑器
picture cb_which //图片对象
//你还可以定义多种类型的PB控件对象

which_control = GetFocus( ) //获得当前焦点对象

CHOOSE CASE TypeOf(which_control) //判断当前焦点对象类型
//注意要转移焦点的对象的tag中要填写名称
CASE picture!
cb_which = which_control
If cb_which.tag = "cb_login" Then //这里都是按tag的名字来判断
cb_login.TriggerEvent(Clicked!)
ElseIf cb_which.tag = "cb_exit" Then
cb_exit.TriggerEvent(Clicked!)
End If
CASE SingleLineEdit!
sle_which = which_control
If sle_which.tag = "sle_userno" Then
sle_pwd.SetFocus()
ElseIf sle_which.tag = "sle_pwd" Then
cb_login.triggerevent(clicked!)
End If
END CHOOSE
END IF

这样你可以在按enter的时候不只在在编辑框中转移焦点,还可以实现多种控件之间的焦点转移
兔子-顾问 2004-08-12
  • 打赏
  • 举报
回复
有例子,就是用回车替代tab键。你需要的话,加我。发给你
MSN:Simtel_006@hotmail.com
QQ:32610303
lixusheng 2004-08-12
  • 打赏
  • 举报
回复
楼上说的是数据窗口中用的方法。
sywen 2004-08-12
  • 打赏
  • 举报
回复
or
if keydown(keyEnter!) then //可以用key=keyenter!代替keydown(keyEnter!)
post(handle(this),256,9,0) //比較通用的一種
......
end if
xl1004 2004-08-12
  • 打赏
  • 举报
回复
定义用户事件:ue_enter 对应event id:pbm_dwnprocessenter
输入脚本:Send(Handle(this),256,9,Long(0,0))
sywen 2004-08-12
  • 打赏
  • 举报
回复
定義一個用戶事件ue_key() event_id為pbm_dwnkey or pbm_keydown
代碼:
if keydown(keyEnter!) then
sle_2.SetFocus()
......
end if
yanghorsy 2004-08-12
  • 打赏
  • 举报
回复
同意klbt(快乐白兔) 的!
muzikuhai 2004-08-12
  • 打赏
  • 举报
回复
这是为在数据窗口编写的一个事件,和文本框的使用基本差不多,稍做修改便可
muzikuhai 2004-08-12
  • 打赏
  • 举报
回复
//===================================================================
// ue_keydown()
//
// 说明:本事件将一个回车键转换成Tab键。同时,如果希望在数据窗口的最后
// 一个字段回车时增项,只需给实例变量is_last_column赋上数据窗口
// 最后一个字段的字段名即可。
//
//
//
//===================================================================
If Key = KeyEnter! Then
If This.GetColumnName() = is_last_edit_col And This.ib_autoaddrow Then
If This.GetRow() = This.RowCount() Then
This.Trigger Event ue_addrow()
Return 1
End If
End If
send(Handle(this),256,9,0)
return 1
End If
cxwsoftware 2004-08-12
  • 打赏
  • 举报
回复
同意klbt(快乐白兔) 的!
TGWall 2004-08-12
  • 打赏
  • 举报
回复
如楼上各位所说,自定义事件, 选Event ID

1,109

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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