問:請問如何實作利用左右鍵及Enter鍵進行列的焦點轉移 ?
答:這要用到Windows中的API函數keybd_event()
①定義API:
Subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library "user32.dll"
②自定義一使用者事件(ue_keydown ID:pbm_dwnkey):
integer VK_TAB = 09
integer VK_SHIFT = 16
if key = KeyLeftArrow! then
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 = KeyRightArrow! or key=KeyEnter! then
keybd_event(VK_TAB,0,0,0) //按下tab
keybd_event(VK_TAB,0,2,0) //釋放tab
return 1
end if
如若隻是想利用ENTER鍵來實作TAB鍵的功能可以用以下代碼:
if key=keyenter! then
Send(Handle(this),256,9,Long(0,0)) //發送TAB鍵
Return 1 //取消原ENTER鍵的動作
end if