这是此处回答的问题的后续问题: How to detect a mouse_down on a Userform Frame while the mouse is still down
使用该问题的答案中的代码,我可以成功检测表单上任何框架上的 MouseDown、MouseUp 和 MouseMove。但是,cls 中显然没有 Frame_Enter 或 Frame_Exit 事件。有没有办法在类模块中模拟 Frame_Enter 事件?
编辑:这就是我想要做的。我有 8 帧加载了 8 张图片,当它们组合在一个更大的帧中时,就构成了一张更大的图片。想象一个有 8 个矩形块的拼图。通常,所有 8 帧都包含其图片的“变暗”(中性滤镜覆盖)版本,但是当鼠标进入其中任何一个时,它会触发在新输入的帧中加载“未变暗”版本的图片,并且变暗刚刚退出的帧中的图片版本。因此,如果鼠标在这些帧中的任何一个上,它总是在被暗色图片包围的明亮图片上移动。
当鼠标在一个未变暗的框架上移动时,它会在无限数量的“热点”触发器上滚动,这些触发器会导致一个文本框弹出,其中包含有关鼠标当前悬停的更多信息。当它离开那个框架并移到另一个框架上时,这个过程会重复。
除了检测鼠标何时越过帧边界并进入下一帧之外,一切正常。必须在处理任何 MouseMove 事件之前检测到这一点。
如果没有其他建议,这是一种看起来很有希望的方法: http ://www.mrexcel.com/forum/showpost.php?p=2567141&postcount=28
Edit2:它看起来仍然很有希望,但我无法让它发挥作用。直到我单击控件之后,它似乎才发出进入和退出事件,这对我没有用。
所以克里斯,回到你的。您正在观看 Frame_MouseMove 事件并等待与上次不同的 Frame 发出事件。我想知道是否不使用辅助文本框来表示更改,是否可以不使用静态变量来跟踪 currentFrame/prevFrame?