如何在鼠标悬停在Excel用户窗体上时显示包含图像的弹出窗口

时间:2017-07-13 06:37:17

标签: excel-vba userform vba excel

请考虑以下事项:
我有一个excel用户表单,其中包含已缩小的图像对象。 当用户在图像上悬停时,我希望图像弹出并以原始大小显示相同的图像。

它的工作原理示例是向ControlTipText添加文本当光标悬停在图像上时,它会显示文字,但我希望它显示图像而不是文字。

看起来如何

用户形式:
The userform

当光标悬停在图像上时:
When cursor hovers on the image

我尝试了以下内容:
使用MouseMove功能,当光标在图像上时,它将显示该图像的放大版本的另一个用户形式。 我几秒钟后还尝试使用计时器关闭用户表单。

这两种方法都不是用户友好的,因为用户必须自己关闭用户窗体或等待用户窗体自动关闭。

1 个答案:

答案 0 :(得分:1)

您可以在鼠标悬停缩略图时调整主UserForm的大小,以便显示更大的图像。从如下所示的用户表单开始:

user form

使用前,请调整UserForm的大小,使其隐藏大图像。

缩略图适合let logout = UIButton(type: .custom) logout.setImage(UIImage(named: "logout.png"), forState: .normal) logout.addTarget(self, action: #selector(self.performLogout), for: .touchUpInside) @objc func performLogout() { // Do something } ,而完整格式为width = 100

将以下内容添加到UserForm:

width = 340

您可以看到两个调整大小的命令,具体取决于鼠标移动的内容,还有一个通用子Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) UpdateLargeImage UserForm1.Image1.Picture End Sub Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) UpdateLargeImage UserForm1.Image2.Picture End Sub Private Sub UpdateLargeImage(ByVal Image As Object) UserForm1.Width = 340 UserForm1.Image3.Picture = Image End Sub Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) UserForm1.Width = 100 End Sub ,它显示较大的图像并将其设置为缩略图中的任何图像。

测试:

test