Office中国论坛/Access中国论坛

标题: 【Access小品】忽悠 -- 文本框内文字移动示例 [打印本页]

作者: todaynew    时间: 2012-7-13 10:40
标题: 【Access小品】忽悠 -- 文本框内文字移动示例
  版友在水一方同志问是否可以实现文本框内文字的拖曳功能。一般情况下,这个功能没有太大的作用,原因在于可以通过右键的剪切粘贴功能来实现。这并不表示不能做出这样的拖曳效果来,实际上用文本框的鼠标按下、鼠标移动和鼠标释放三个事件,结合SelStart、SelLength和SelText三个属性是可以做出拖曳效果的。但是,注意这个但是。文本框内的拖曳需要通过事件的x参数来判断鼠标移动的方向、距离并与字符大小反复比对,运算效率很低,使得拖曳的效果不流畅。那么这个问题应该怎么解决最为得当呢?
   
  为了回答这个问题,我们需要对功能需求做一个分析。所谓文字的拖曳,实际上分为两个部分的功能,一个部分是将文字从一个位置移动到另一个位置,这个功能是需求的核心;第二个部分是一个视觉上的效果,也就是一个可视性的移动效果。也就是说放弃第二个功能,并不影响核心需求的实现。说到这里你可能觉得这个讨论已经没什么意义了,因为我们已经知道用右键是可以完成第一个功能的。
   
  其实不然!我们来看看一段文字移动时的动作:1、选中,2、右击,4、左击快捷菜单中的剪切,5左击新位置,6、右击,7、左击快捷菜单中的粘贴。从选中文字开始到移动到一个新的位置,需要有7个动作。这一系列动作你已经习惯,可能你没有意识到存在一个效率不高的问题,但这个问题确实存在。
   
  通过以上的分析,我们得出解决问题的总体思路来:文本框内的文字移动,我们放弃拖曳的视觉效果,而需要实现比右击方式更为高效的移动功能。于是乎,围绕这个总体的思路,我们就可以找到多种解决方案。比如说用SendKeys方法或者用SelStart、SelLength和SelText属性等,都可以实现需要的功能。
   
  说到这里,大部分版友可能都被忽悠住了,或许有几位头脑还比较清醒的同志会捂嘴偷笑道:老汉怎么不说Ctrl+X和Ctrl+V的问题呀。我的解释是,在移动一段文字的时候,你的左手需要用来吸烟或者端茶,呵呵。

[attach]49664[/attach]

[attach]49665[/attach]
作者: jinzhanxi    时间: 2012-7-13 10:43
高论,受教
作者: yanwei82123300    时间: 2012-7-13 10:45
todaynew 信息帮助!!
作者: jun_hai    时间: 2023-3-15 11:19
谢谢!!!!!!!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3