主题:输入如何跟随光标
sdn193551
[专家分:10] 发布于 2009-07-05 09:25:00
请教编程高手、老师:
我想在TEXT1中红色光标处输入列表框LIST2中的b2选项,如下图所示。可以设计成双击b2选项,b2自动进入红色光标处。这个程序应该如何编写?我现在可以做到双击b2,b2自动进入TEXT1,却始终位于文本框左边开始位置,不能跟随光标。谢谢!抱歉,附图没有上传,再发一!
回复列表 (共8个回复)
沙发
Ilikefox [专家分:5770] 发布于 2009-07-05 09:51:00
使用SelText属性
板凳
zxl931 [专家分:3420] 发布于 2009-07-05 10:02:00
在list2的dbclick事件中添加以下代码:
WITH thisform.text1
.Value=ALLTRIM(.Value)+this.Value
.SetFocus
ENDWITH
KEYBOARD '{END}'
3 楼
sywzs [专家分:5650] 发布于 2009-07-05 11:46:00
再加一句
KEYBOARD '{END}' CLEAR
4 楼
sdn193551 [专家分:10] 发布于 2009-07-11 17:19:00
[quote]在list2的dbclick事件中添加以下代码:
WITH thisform.text1
.Value=ALLTRIM(.Value)+this.Value
.SetFocus
ENDWITH
KEYBOARD '{END}'[/quote]
zxl931老师:
按照你的指示,复制代码到相应的事件中。我试了一下,
运行成功!
请你对每一项命令的作用和功能注解一下。
with...endwith,如何使用?
我是初学者,多多指教!
5 楼
sdn193551 [专家分:10] 发布于 2009-07-11 18:56:00
[quote]再加一句
KEYBOARD '{END}' CLEAR[/quote]
老师:为何再加一句?clear清键盘缓冲区,end键标记起什么作用?
6 楼
sywzs [专家分:5650] 发布于 2009-07-12 07:18:00
我来解释一下 with...endwith
with 后面跟随的是一个对象,在这里指的是 thisform.text1,它的作用域一直到 endwith 结束。也就是说,在with thisform.text1...endwith 里的 .Value、.SetFocus 都是 thisform.text1 的。用它的目的主要就是当使用同一对象较多时,可以减少代码输入的长度,使代码看起来更简洁易读。
再来解释一下为什么要用 KEYBOARD '{END}' CLEAR
KEYBOARD '{END}' 是在键盘缓冲区输入一个字符,这个字符是占用内存的,使用 KEYBOARD '{END}' CLEAR 是为了及时清除键盘缓冲区,以减少内存的开销。
7 楼
sdn193551 [专家分:10] 发布于 2009-07-12 19:19:00
[quote]我来解释一下 with...endwith
with 后面跟随的是一个对象,在这里指的是 thisform.text1,它的作用域一直到 endwith 结束。也就是说,在with thisform.text1...endwith 里的 .Value、.SetFocus 都是 thisform.text1 的。用它的目的主要就是当使用同一对象较多时,可以减少代码输入的长度,使代码看起来更简洁易读。
再来解释一下为什么要用 KEYBOARD '{END}' CLEAR
KEYBOARD '{END}' 是在键盘缓冲区输入一个字符,这个字符是占用内存的,使用 KEYBOARD '{END}' CLEAR 是为了及时清除键盘缓冲区,以减少内存的开销。
[/quote]
sywzs老师,谢谢指教!另外,我不理解KEYBOARD '{END}'命令放在程序最后起什么作用?
8 楼
sywzs [专家分:5650] 发布于 2009-07-14 05:45:00
KEYBOARD '{END}' 相当于按下了键盘上的 End 按键(把光标移到行尾)。
我来回复