VBA:单击元素后无法更改图像控制图片

问题描述 投票:0回答:2

设置

我有一个带有图像控件元素的 Excel VBA 用户窗体。单击表单中的按钮时,将使用以下代码设置/更新图像控件的

Picture
源:

Set MyForm.imgControl.Picture = LoadPicture(pathToFile)

问题

当用户单击图像控件时,更新其

Picture
源不再起作用。无论何时在工作流程中单击图像控件,都会出现问题:

  • 示例1:用户单击按钮来设置图片(并且图片设置正确)。用户单击“图像控制”。用户单击不同的按钮来更改图片 -> 显示的图片不会更改。
  • 示例 2:用户在表单加载后立即单击图像控件。用户点击按钮更改图片 -> 显示的图片不会改变。

如果用户从不单击图像控件,一切都会顺利进行。值得注意的是,单击图像控件并不会明显聚焦它。

问题

单击图像控件不会影响图片是否可以更新。如何才能做到这一点?或者,至少,有人知道为什么会发生所解释的行为,或者这只是一个错误?

该控件确实具有 Click / MouseDown / ... 事件(为空),但它们不采用 Cancel 参数。

vba excel userform
2个回答
3
投票

正如你所说,这听起来确实像一个错误,但作为一种解决方法,我建议在更改图片后强制重新绘制:

Set MyForm.imgControl.Picture = LoadPicture(pathToFile)
MyForm.Repaint

0
投票

最终发现调整图像控件的大小可以解决问题(即在添加图片之前增加然后立即减小宽度)。

© www.soinside.com 2019 - 2024. All rights reserved.