VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件

这篇具有很好参考价值的文章主要介绍了VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。本套教程共三册三十个专题,本讲的内容是:VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件,VBA,开发语言

分享成果,随喜正能量】 海洋能接纳百川,所以深不可测,广阔无边;大地能承载万物,所以生机勃勃,气象万千;天空能包容一切,所以宽广浩瀚、虚融自在;一颗宁静而平等的心,亦能包容万物、能感化世界上最顽固的敌人、能化解世间最强烈的仇恨、能治疗人类身心的疑难杂症。可以这么说,只要我们的心能够平静与自在,天下没有难事。心的自性是活泼的、灵活的、生动的、机灵的,心灵的力量超越世间所有力量。有心量就有福报,有福报就能心安,心安才能快乐。。

应用2 在列表框内及列表框间实现数据拖放

利用VBA编程时候,我们往往会利用列表框进行选择处理,最为方便的操作是拖放数据,但是在VBA中实现拖放,是比较困难的任务。为了便于在UserForm上的两个列表框之间完成拖放操作,我专门利用这个专题给大家讲解一个利用类模块的方案,在需要的时候,只需将其插入到VBA项目中即可。这样做之后,可以大大方便我们自己的工作。

1 实现的工作原理

如果要在UserForm上的控件之间(或控件内)实现拖放,则需要以下控件事件:

1) MouseMove鼠标左键按下并移动鼠标事件

当鼠标左键按下并移动鼠标时,用户可能正在开始拖动操作。我们需要确保记住列表中当前选定的项目。我希望代码能够在两个控件之间和一个控件内进行拖放,并指示拖放将在何处进行。因此,我需要两件事:

一是记住在开始拖动时选择了哪些列表的项,代码通过在每个选定项前面添加一个字符串位来临时标记我们正在拖动的项:“>”。此字符串也在稍后利用为在移动后必须从列表中删除哪些项的标识。如果用户没有按下鼠标按钮的情况下拖动,则将从列表项中删除“>”以进行清理。

二是指示下落位置的方法,VBA不便于检测鼠标光标下的列表项。MouseMove和BeforeDropOrPaste事件确实给出了X和Y坐标,但是确定哪个项目“属于”某个Y并不容易,因为我们不知道每个项目的Y坐标。我使用的技巧是:临时将40个列表项添加到列表框中(以确保列表项使用了框的整个高度),然后将列表框的topindex设置为最后一个。这将强制列表框向下滚动,在列表框底部显示最后一项。然后列表框会得到一个新的TopIndex(实际显示在顶部的项目),这样我们现在就可以计算有多少项目适合列表框的高度。因此,我们可以计算单个项目的高度,并使用它来检测鼠标的位置。我们将在属于ListBox1的属性过程中找到执行此操作的代码。

  • 我们先来讲解一下这个事件,MouseMove 事件在用户移动鼠标时发生:

语法:Private Subobject _MouseMove( ByVal Button As fmButton,ByVal Shift As fmShiftState,ByVal X As Single,ByVal Y As Single)

参数:

Part

说明

备注

object

必填。

有效的对象名称。

Button

必填。

标识鼠标按钮状态的整数值。

Shift

必填。

指定 Shift、Ctrl 和 Alt 的状态。

X, Y

必填。

从控件的左或上边缘以磅为单位测量的水平或垂直位置。

Button 的设置是:

说明

0

未按下任何按钮。

1

已按下左键。

2

已按下右键。

3

已按下右键和左键。

4

已按下中键。

5

已按下中键和左键。

6

已按下中键和右键。

7

已按下全部三个键。

Shift 的设置是:

说明

1

已按下 Shift。

2

已按下 Ctrl。

3

已按下 Shift 和 Ctrl。

4

已按下 Alt。

5

已按下 Alt 和 Shift。

6

已按下 Alt 和 Ctrl。

7

已按下 Alt、Shift 和 Ctrl。

VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件,VBA,开发语言

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件,VBA,开发语言

VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件,VBA,开发语言文章来源地址https://www.toymoban.com/news/detail-859761.html

到了这里,关于VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于使用鼠标时间mouseMove拖拽元素及元素抖动的解决方案

    最近在做一个画布相关的项目时有一个场景是移动画布,最先开始想到的是拖拽事件,但是用户希望元素是实时的变化,所以决定使用mouseMove事件来做。 通过 mouseDown 事件确定鼠标按下的位置 根据 mouseMove 事件来计算出鼠标相对初始状态的横向位移距离和纵向的位移距离 获取

    2024年02月10日
    浏览(42)
  • JavaScript 监听鼠标左右同时按下/同时按下移动

    基于原生JavaScript, 在使用 three.js 的 raycaster 模拟瞄准及射击时用到.

    2024年02月07日
    浏览(39)
  • Unity 实现鼠标左键进行射击

    发射脚本实现思路 分析 确定用户交互方式:通过鼠标左键点击发射子弹。 确定子弹发射逻辑:每次点击后有一定时间间隔才能再次发射。 确定子弹发射源和方向:子弹从枪口(Transform)位置发射,沿枪口方向前进。 变量设定 设定子弹预制体引用:用于在游戏中实例化子弹

    2024年04月11日
    浏览(37)
  • Qt 鼠标左键推拽界面

    代码实现: button 返回 哪个按钮造成了此事件, buttons 返回 发生此事件时哪些按钮还处于按下状态 appinitdrag.h appinitdrag.cpp 在 main.cpp 里添加 appinitdrag.h ,然后在要设定拖拽的 widget 窗口的构造函数里添加代码

    2024年02月04日
    浏览(46)
  • winapi模拟鼠标按住左键拖动

            继前文《windows下通过uiAutomation技术获取ui元素》介绍获取ui元素信息后,还需要对信息进行修改,但是 uiAutomation 技术并未提供可修改的 api ,只能另辟他径看看了。         以 camera raw 为例,已知的是可将鼠标放在指定区域位置,然后按下左键并左右拖动,也

    2024年02月16日
    浏览(40)
  • 鼠标连点器(VB.net 全局键盘钩子+模拟鼠标 左键、右键)

    相信大家在玩游戏的时候会把 “攻击” 设置为鼠标左键,但是自己手速不够快,被人家秒了 废话不多说,立马进入主题: 一、新建一个vb.net工程(窗体应用程序) 大概是这样,timer1控制鼠标左键,timer2控制鼠标右键 二、新建一个模块(Module1.vb) 写入:注意,本模块由C

    2024年02月09日
    浏览(61)
  • Unity(六)--绑定鼠标点击事件(左键、右键、中键)

    新建一个脚本buttonEvent:

    2024年02月01日
    浏览(54)
  • vscode ctrl+鼠标左键没反应

    vscode刚开始用的好好地,有一天突然发现按ctrl+鼠标左键无法跳转到函数,我就知道我要踩坑了 重装vscode,重启电脑,按照百度折腾了一个小时还是没搞定,最后迫于无奈加了个go的开发群问了下,有一个大佬说了两种可能,特此记录下 可能的原因 原因一: vscode当前存储的

    2024年02月12日
    浏览(51)
  • 解决Ctrl+鼠标左键点击后怎么返回

    注 :此处只介绍在编写代码时,Ctrl+鼠标左键查看某段代码时如何返回到点之前的位置。 寻找 当前编辑器 的快捷键,这个快捷键的作用是 跳转到光标上一位置或者回退到上一个操作的位置 。 例如Idea快捷键就是Ctrl + alt + left(left是指键盘左键,同理right是指键盘右键)。 如果

    2024年02月10日
    浏览(47)
  • TextBox添加鼠标按下、失去焦点、鼠标移动等事件及重写

    TextBox添加鼠标按下、失去焦点、鼠标移动等事件及重写 方法1: 方法2:    

    2024年02月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包