日期:2014-02-12  浏览次数:20714 次

问题描述:

如何在DW中按下左右光标时切换到相邻单元格?

处理方案:

首先声明外部函数:

 

Subroutine keybd_event(int bVk,int bScan,ulong dwFlags,ulong dwExtraInfo) LIBRARY "user32.dll"

 

一、如果不想在DW的单元格内利用左右键编辑内容,只需一按下左右键就切换到其他单元格的话可以:

 

新建ue_key 对应 pbm_dwnkey ,代码如下:

 

if key=keyleftarrow! then

keybd_event(16,0,0,0)   //按下SHIFT键

keybd_event(9 ,0,0,0)   //按下下TAB

keybd_event(9 ,0,2,0)   //放开TAB键

keybd_event(16,0,2,0)   //放开SHIFT键

return 1

elseif key=keyrightarrow! then

keybd_event(9 ,0,0,0)   //按下下TAB

keybd_event(9 ,0,2,0) //放开TAB键

return 1

end if

 

二、如果还想在DW的单元格内利用左右键编辑内容,只在空或者全选时按下左右键才切换到其他单元格的话可以:

 

新建ue_key 对应 pbm_dwnkey ,代码如下:

 

integer li_len,li_len_selected

 

li_len=len(this.gettext())

li_len_selected=len(this.SelectedText())

 

if not (isnull(this.gettext()) or this.gettext()="" or li_len=li_len_selected) then return

 

if key=keyleftarrow! then

keybd_event(16,0,0,0)   //按下SHIFT键

keybd_event(9 ,0,0,0)   //按下下TAB

keybd_event(9 ,0,2,0)   //放开TAB键

keybd_event(16,0,2,0)   //放开SHIFT键

return 1

elseif key=keyrightarrow! then

keybd_event(9 ,0,0,0)   //按下下TAB

keybd_event(9 ,0,2,0) //放开TAB键

return 1

end if