Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3723|回复: 7

[已解决]窗体N个标签 鼠标滑动变色

[复制链接]
发表于 2016-4-5 11:00 | 显示全部楼层 |阅读模式
本帖最后由 蝶·舞 于 2016-4-5 17:05 编辑

我在窗体中添加N个标签,然后设置鼠标经过时变红色,离开变黑色
我现在的代码,是有几个标签就设几个MOVE事件,我想问一下,如果我有一百个标签,也得这么设置吗?有没有能够对标签进行变量设置,写一个代码就够了? 鼠标经过变色.zip (7.06 KB, 下载次数: 23)
发表于 2016-4-5 11:41 | 显示全部楼层
回复

使用道具 举报

发表于 2016-4-5 11:47 | 显示全部楼层
回复

使用道具 举报

发表于 2016-4-5 13:57 | 显示全部楼层
有个取巧的办法
但鼠标只能在窗体的空白处移动才作用,如果鼠标移到窗体的控件,不发生作用。
  1. Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  2.     For i = 1 To 5
  3.          With Me.Controls("Label" & i)
  4.             .ForeColor = RGB(0, 0, 0)
  5.             y1 = .Top: y2 = y1 + .Height
  6.             If Y >= y1 And Y <= y2 Then .ForeColor = RGB(255, 0, 0)
  7.         End With
  8.     Next
  9. End Sub
复制代码

鼠标经过变色.rar

9.21 KB, 下载次数: 25

回复

使用道具 举报

发表于 2016-4-5 14:14 | 显示全部楼层    本楼为最佳答案   
用类模块做的。。。。。

鼠标经过变色.rar

12.8 KB, 下载次数: 43

回复

使用道具 举报

发表于 2016-4-5 16:43 | 显示全部楼层
'窗体中的代码
Dim labs(1 To 5) As New 类1
Private Sub UserForm_Initialize()
    Dim i
    For i = 1 To UBound(labs)
        Set labs(i).myEvent = Me.Controls("Label" & i)
    Next i
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Dim i
    For i = 1 To UBound(labs)
        labs(i).myEvent.ForeColor = RGB(0, 0, 0)
    Next
End Sub


'类模块中的代码
Public WithEvents myEvent As MSForms.Label
Private Sub myEvent_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    myEvent.ForeColor = RGB(255, 0, 0)
End Sub


鼠标经过变色2.rar (12.02 KB, 下载次数: 43)
回复

使用道具 举报

发表于 2016-4-5 16:49 | 显示全部楼层
我也是对着书现编的。类模块平时基本没用过。
回复

使用道具 举报

发表于 2016-4-6 14:51 | 显示全部楼层
好东西,一定要学。
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 09:20 , Processed in 0.435468 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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