判断左键右键_设计按下左键可以拖动窗体,按下右键可以拖动控件的效果

我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!

先展示下效果: 3fecd552d36b1db21deae72e4f46e183.gif 上图中是在一个名字为UseForm1的窗体中插入了两个命令按钮,运行窗体后,鼠标置于窗体上,按下左键,可以移动窗体,按下右键可以移动窗体中的两个控件。 一般情况下,按下鼠标左键都可以移动窗体,但是按下鼠标右键能移动控件吗? 当然不行。 想要实现上面的效果,需要首先利用窗体的 MouseDown 事件,获取到按下鼠标时,鼠标和控件当前的位置,然后利用 MouseMove 事件,计算出窗体或者是控件移动后的位置,全部代码如下: 双击窗体后在写在窗体的事件代码中: Dim MouseX#, MouseY#, Commandbutton1X#, Commandbutton1Y#, Commandbutton2X#, Commandbutton2Y# Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) MouseX = X MouseY = Y Commandbutton1X = CommandButton1.Left Commandbutton1Y = CommandButton1.Top Commandbutton2X = CommandButton2.Left Commandbutton2Y = CommandButton2.Top End Sub Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 1 Then     Me.Left = Me.Left + (X - MouseX)     Me.Top = Me.Top + (Y - MouseY) ElseIf Button = 2 Then     CommandButton1.Left = Commandbutton1X + (X - MouseX)     CommandButton1.Top = Commandbutton1Y + (Y - MouseY)     CommandButton2.Left = Commandbutton2X + (X - MouseX)     CommandButton2.Top = Commandbutton2Y + (Y - MouseY) End If End Sub 首先声明一些公共变量,因为两个事件过程都要用到这些变量,这些变量的作用是记录按下鼠标时窗体和控件的位置。 当按下鼠标时,记录下窗体当前的位置: MouseX = X MouseY = Y X、Y代表鼠标的当前坐标 同时也要记下两个控件的当前位置: Commandbutton1X = CommandButton1.Left Commandbutton1Y = CommandButton1.Top Commandbutton2X = CommandButton2.Left Commandbutton2Y = CommandButton2.Top 当移动鼠标时会触发窗体的MouseMove事件,然后利用一个If语句判断 按下的键是左键还是右键,如果按下的是左键,那就修正窗体的位置,如果按下的是右键,那就修正控件的位置。 用现在的位置(Top、Left)减去原来记录下来的位置(Top、Left)就是移动的距离,加原来所在的位置(Top、Left)就能得到新的位置(Top、Left)。 这里重点介绍下两个事件中四个参数的含义: 1、Button ,表示按下的是哪个键,下面是该参数的返回值以及含义说明。 4ced2b9b0e493c91d785fc9e8f0ab026.png 2、Shift ,表示用户是否按下了Alt、Shift或者是Ctrl 这个三个键,下面是该参数的返回值以及含义说明。 a477049af1f628044062b370c42d1360.png 3、X、Y, 分别代表鼠标指针的X和Y坐标值。 知识点: 窗体中的MouseDown事件和MouseMove事件

想系统学习VBA,请点击阅原文进入米宏office云学堂学习,不懂的可以提问哦!

公众号后台资源库可获取更多资源:

e17eba13179137de25d14c87a2ae7066.png

本节的分享就到这里,祝大家每天都有进步。

1

在线课堂在逐渐完善中,欢迎您的光临!

fd4e7adc9b27fbfef3afb2f57f183201.png

bb4d5f11b1ebeb3483905a2ae373fd03.gif

点击下方“”即可进入云课堂学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值