中华人民 发表于 2008-12-10 09:48:34

Dm中按下左右光标时切换到相邻单元格

问题描述:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></B> <P></P>如何在DW中按下左右光标时切换到相邻单元格?<o:p></o:p> <P></P>解决方案:<o:p></o:p></B> <P></P>首先声明外部函数:<o:p></o:p> <P></P><o:p> </o:p> <P></P>Subroutine keybd_event(int bVk,int bScan,ulong dwFlags,ulong dwExtraInfo) LIBRARY "user32.dll" <o:p></o:p><P></P><o:p> </o:p> <P></P>一、如果不想在DW的单元格内利用左右键编辑内容,只要一按下左右键就切换到其他单元格的话可以:<o:p></o:p> <P></P><o:p> </o:p> <P></P>新建ue_key 对应 pbm_dwnkey ,代码如下:<o:p></o:p> <P></P><o:p> </o:p> <P></P>if key=keyleftarrow! then<o:p></o:p> <P></P>keybd_event(16,0,0,0)   //按下SHIFT键<o:p></o:p> <P></P>keybd_event(9 ,0,0,0)   //按下下TAB <o:p></o:p><P></P>keybd_event(9 ,0,2,0)   //放开TAB键 <o:p></o:p><P></P>keybd_event(16,0,2,0)   //放开SHIFT键<o:p></o:p> <P></P>return 1<o:p></o:p> <P></P>elseif key=keyrightarrow! then<o:p></o:p> <P></P>keybd_event(9 ,0,0,0)   //按下下TAB <o:p></o:p><P></P>keybd_event(9 ,0,2,0) //放开TAB键 <o:p></o:p><P></P>return 1<o:p></o:p> <P></P>end if<o:p></o:p> <P></P><o:p> </o:p> <P></P>二、如果还想在DW的单元格内利用左右键编辑内容,只在空或者全选时按下左右键才切换到其他单元格的话可以:<o:p></o:p> <P></P><o:p> </o:p> <P></P>新建ue_key 对应 pbm_dwnkey ,代码如下:<o:p></o:p> <P></P><o:p> </o:p> <P></P>integer li_len,li_len_selected<o:p></o:p> <P></P><o:p> </o:p> <P></P>li_len=len(this.gettext())<o:p></o:p> <P></P>li_len_selected=len(this.SelectedText())<o:p></o:p> <P></P><o:p> </o:p> <P></P>if not (isnull(this.gettext()) or this.gettext()="" or li_len=li_len_selected) then return<o:p></o:p> <P></P><o:p> </o:p> <P></P>if key=keyleftarrow! then<o:p></o:p> <P></P>keybd_event(16,0,0,0)   //按下SHIFT键<o:p></o:p> <P></P>keybd_event(9 ,0,0,0)   //按下下TAB <o:p></o:p><P></P>keybd_event(9 ,0,2,0)   //放开TAB键 <o:p></o:p><P></P>keybd_event(16,0,2,0)   //放开SHIFT键<o:p></o:p> <P></P>return 1<o:p></o:p> <P></P>elseif key=keyrightarrow! then<o:p></o:p> <P></P>keybd_event(9 ,0,0,0)   //按下下TAB <o:p></o:p><P></P>keybd_event(9 ,0,2,0) //放开TAB键 <o:p></o:p><P></P>return 1<o:p></o:p> <P></P>end if<o:p></o:p>
页: [1]
查看完整版本: Dm中按下左右光标时切换到相邻单元格