为什么DDLB不能用自定义事件pbm_dwnkey响应回车键呢?

xrfei 2002-09-27 11:06:02
我做一个登录窗口,用户名用的是DropDownListBox控件.我想使用自定义事件,使得当输入用户名(或选择用户名)后,按回车键能使之转换成TAB键,焦点自动跳至密码框中.我在dropdownlistbox的自定义事件u_key(pbm_dwnkey)写如下代码:
if key = KeyEnter! then
SEND(Handle(this), 256, 9, LONG(0));
return 1
end if
但是没有任何响应.请教高手该如何做???
...全文
33 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xrfei 2002-09-29
  • 打赏
  • 举报
回复
感谢各位热心相助,问题已解决. yl_yz(yz) ,你的办法有效,不过,直接用好象不行.我作了小小改动:
GraphicObject which_control
which_control = GetFocus( )

if keydown(keyenter!) then
choose case TypeOf(which_control)
case DropDownListBox!
sle_password.setfocus() //焦点跳至密码输入框
case SingleLineEdit!
cb_ok.triggerevent(clicked!) //焦点跳至'确认'按钮
end choose
end if
WangAQ 2002-09-29
  • 打赏
  • 举报
回复
应该在窗口中定义时间,不该在Dropdownlistbox中定义此键盘事件。
yl_yz 2002-09-29
  • 打赏
  • 举报
回复
在窗口自定义事件u_key(pbm_keydown)写如下代码:
GraphicObject which_control
which_control = GetFocus( )
if keydown(keyenter!) then
choose case classname( which_control)
case 'ddlb_1'
sle_1.setfocus()
case ....
end choose
xrfei 2002-09-28
  • 打赏
  • 举报
回复
还是不行的啊.哪位有高招啊?
birdslin 2002-09-28
  • 打赏
  • 举报
回复
自定义事件u_key(pbm_keydown)写如下代码:

而不是(pbm_dwnkey)
if keydown(keyenter!) then
em_price.setfocus()
end if
flyerlxg 2002-09-28
  • 打赏
  • 举报
回复
把代码写在modified事件中,如:sle_password.setfocus()也可以解决您那个问题
winet68 2002-09-27
  • 打赏
  • 举报
回复
只能“选择”而不能进行“输入”,楼上朋友的说法显然不可行!
xrfei 2002-09-27
  • 打赏
  • 举报
回复
谢谢,这招果然凑效.但是,我还有个请求,能不能不去掉也可以达到效果呢?
jackygan 2002-09-27
  • 打赏
  • 举报
回复
试将属性去的Allow Editing复选框去掉。

1,075

社区成员

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

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