Excel精英培训网

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

[已解决]MouseMove 事件 让图片变色问题!

[复制链接]
发表于 2011-11-24 16:01 | 显示全部楼层 |阅读模式
我用窗体MouseMove 事件
和图片MouseMove 事件  实现 经过图片时 变色!

但出现一个问题:当按个图片控件后,变色效果就失效了!
  1. Option Explicit

  2. Private Sub Image1_Click()
  3. MsgBox ""
  4. End Sub

  5. Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  6. Image1.PictureAlignment = 1
  7. End Sub
  8. Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  9. Image2.PictureAlignment = 1
  10. End Sub
  11. Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  12. Image1.PictureAlignment = 0
  13. Image2.PictureAlignment = 0
  14. End Sub
复制代码



最佳答案
2011-11-24 19:57
完全没问题啊! 变色问题(MouseMove).rar (28.46 KB, 下载次数: 36)
PPP.gif

变色问题(MouseMove).rar

27.85 KB, 下载次数: 25

 楼主| 发表于 2011-11-24 16:05 | 显示全部楼层
是不是因为按下之后,焦点 问题?
回复

使用道具 举报

 楼主| 发表于 2011-11-24 16:28 | 显示全部楼层
按下后
PictureAlignment 值 还是有在发生变化
但图片的效果没有发生变化!
回复

使用道具 举报

 楼主| 发表于 2011-11-24 16:31 | 显示全部楼层
本帖最后由 mxg825 于 2011-11-24 16:33 编辑

试出来了
我在按下事件中 ‘隐藏图片控件 再显示  就可以了!
看来按下后,图片控件要重画 才行!
Private Sub Image2_Click()
   Image2.Visible = False
   Image2.Visible = True
End Sub
回复

使用道具 举报

发表于 2011-11-24 16:35 | 显示全部楼层
需要repaint一下,稍作了一点优化:
  1. Option Explicit

  2. Dim move_Userform As Long
  3. Dim move_Image As Long

  4. Private Sub Image1_Click()
  5.     MsgBox ""
  6. End Sub

  7. Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  8.     move_Userform = 0
  9.     move_Image = move_Image + 1
  10.     If move_Image = 1 Then Image1.PictureAlignment = 1: UserForm1.Repaint
  11. End Sub
  12. Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  13.     move_Userform = 0
  14.     move_Image = move_Image + 1
  15.     If move_Image = 1 Then Image2.PictureAlignment = 1: UserForm1.Repaint
  16. End Sub
  17. Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  18.     move_Image = 0
  19.     move_Userform = move_Userform + 1
  20.     If move_Userform = 1 Then
  21.         Image1.PictureAlignment = 0
  22.         Image2.PictureAlignment = 0
  23.         UserForm1.Repaint
  24.     End If
  25. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2011-11-24 17:30 | 显示全部楼层
Dj_soo 发表于 2011-11-24 16:35
需要repaint一下,稍作了一点优化:

没有效果 。。。。。。。。!

我用隐藏 再显示 暂时解决这个问题!

应该需要重画 窗体!
回复

使用道具 举报

发表于 2011-11-24 19:56 | 显示全部楼层
mxg825 发表于 2011-11-24 17:30
没有效果 。。。。。。。。!

我用隐藏 再显示 暂时解决这个问题!

不可能吧,我在电脑上已经试过了完美运行啊
回复

使用道具 举报

发表于 2011-11-24 19:57 | 显示全部楼层    本楼为最佳答案   
完全没问题啊! 变色问题(MouseMove).rar (28.46 KB, 下载次数: 36)
回复

使用道具 举报

发表于 2011-11-24 20:00 | 显示全部楼层
求真相!
userform.gif
回复

使用道具 举报

 楼主| 发表于 2011-11-24 20:16 | 显示全部楼层
我大意。新建个窗体,忘了改: UserForm1.Repaint   UserForm2.Repaint
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 03:37 , Processed in 0.383275 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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