数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

PB数据窗口中用Enter键替代Tab键切换栏目


发布日期:2023年10月11日
 
PB数据窗口中用Enter键替代Tab键切换栏目

PB中数据窗口输入栏目(域)间的切换通过按键盘最左边的Tab 键来实现如果要用Enter键替代Tab 键切换栏目实现焦点的转移该怎么办?

由于按Enter键是Windows直接支持的消息故我们可以使用用户事件来解决此问题 在用户事件中PowerBuilder提供的一条pbm_事件对应Windows的一条或几条消息我们在数据窗的用户事件中选择pbm_dwnProcessEnter并命名为ue_Enterkeydown当我们按下Enter键时将触发此事件

提供两种方法(推荐用第二种)

利用数据窗口的SetColumn函数

在所定义的ue_Enterkeydown事件下写代码

long ll_column_count

long ll_column

ll_column_count =long(thisDescribe(DataWindowColumnCount))

ll_column = thisGetColumn()

if ll_column = ll_column_count then

return

else

thisSetColumn(ll_column +

end if

用上面脚本须注意几点

) 按Enter键焦点的切换是按所选列的顺序而不是按设置的Taborder的顺序

) 若某列的visible属性为false 或 TabOrder = 则以上方法不起作用

若不合以上要求即所选列的顺序与要录入域顺序不一致或某些列的visible属性为false或 其TabOrder = 此时不能用上述代码但也可用类似方法实现只是稍繁琐一点举例如下

long ll_column

string ls_column_name

ll_column = thisgetcolumn()

ls_column_name = thisDescribe(#+string(ll_column)+Name

choose case ls_column_name //列名

case no

thisSetColumn(name

case name

thisSetColumn(age) case age

end choose

把消息传递给Tab键同时忽略Enter键的处理这种方法最为方便简洁

在ue_Enterkeydown事件中编写脚本如下

Send(Handle(this)Long())

Return

编辑推荐

ASP NET开发培训视频教程

Microsoft NET框架程序设计视频教程

上一篇:PB在数据窗口中实现某一列的增量查询功能

下一篇:在PB中实现串口编程