Enter代替Tab
DW数据窗口:FROM,每个单元格都是可显示多行的高度,通过SQL SELECT形式创建,所有的列类型为:char(50),这种数据窗口的列类型是不能修改的,所有列autoselect勾选上
方法一:
Subroutine keybd_event(int bVk,int bScan,ulong dwFlags,ulong dwExtraInfo) LIBRARY "user32.dll"
keybd_event(VK_TAB,0,0,0) //按下tab
keybd_event(VK_TAB,0,2,0) //释放tab
RETURN 1
在FROM格式的DW中,出现结果,当前单元格执行ENTER,于是当前单元格被选中的内容,被回车键清除了。
然后焦点跳到下一个单元格,下一个单元格的内容,又被自动选择了,再回车……,于是这个DW内的内容,全部被清除光了,郁闷
方法二:
Send(Handle(this),256,9,Long(0,0))
RETURN 1
效果:当前单元格内容不变,焦点跳到下一个单元格,下一个单元格内容全部自动选择,然后在下个单元格内输入一个回车,下个单元格内的内容被一个回车键代替,再回车……,于是,整个DW窗口,除第一个单元格外,其它单元格内容,全部变成一个回车了,再次郁闷
测试三:
把所有的列,高度调整为显示一行内容的高度,两种方法都能将回车键完美的替换成tab键的效果。无语了……
—————————分割—————————————————
然后改变dw数据窗口,仍然是FROM形式,但创建时,使用External,自己输入列,类型全部为String,在这样的数据窗口里,不论用第一种方法,还是第二种方法,按下回车,都被完美的替换成TAB键了,而且不管列的高度是显示单行的高度,还是显示多行的高度,都没问题。
我的pb :12.5.2 5550
—————————问题———————————————————
求教一个能有效的将回车替换成tab的方法
数据窗口要求:自由布局,从数据库表中SELECT的,列的高度是多行的
如果大家测试,发现没有我的这个问题,请告知你的版本号,让我再测试下,谢谢
Enter代替Tab
[解决办法]