设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2698|回复: 3
打印 上一主题 下一主题

[宏/菜单/工具栏] 【Access小品】忽悠 -- 文本框内文字移动示例

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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖1 订阅订阅
2#
发表于 2012-7-13 10:43:17 | 只看该作者
高论,受教
3#
发表于 2012-7-13 10:45:28 | 只看该作者
todaynew 信息帮助!!

点击这里给我发消息

4#
发表于 2023-3-15 11:19:26 | 只看该作者
谢谢!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-2 15:28 , Processed in 0.088385 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表