我有一个带有一堆ActiveX控件按钮的文档doc或其他任何内容,每次单击一个按钮时,都需要在弹出框中显示相应的图像。
我有一个名为ImageForm的用户窗体,这就是我现在正在做的事情:
Sub Button_Clicked()
ImageForm.Picture = LoadPicture("appropriate_image_path")
ImageForm.Show
End Sub
这些图像中的每一个都有8.5英寸的宽度,但它们的高度可以在3到20英寸之间变化(它们是pdf的片段)。所以我将用户窗体的宽度设置为略大于8.5英寸,看起来很好。但是我需要能够在用户窗体中垂直滚动图像,因为某些图像可能比用户的监视器更高。
我完全坚持这一点。到目前为止我尝试过的是在表单中添加一个框架,然后在表单中添加一个图像控件,并将框架的“ScrollBars”属性设置为vertical。然后,而不是使用“ImageForm.Picture = ...”我使用“ImageForm.ImageControl.Picture = ...”但它不起作用。
这里的任何见解将不胜感激。希望这个问题很清楚,我现在只使用VBA一个月左右。 (我非常想念Java)
谢谢!
答案 0 :(得分:5)
这是一个基于我的posts
之一的巧妙小技巧我们的想法是确保图像控件处于帧控制状态,并且图像控件没有边框。此外,图像控件的PictureSizeMode
设置为fmPictureSizeModeClip
,以便我们可以滚动图像
SNAPSHOT(设计时间)
SNAPSHOT(运行时间)
<强> CODE 强>
Private Sub UserForm_Initialize()
With Frame1
'~~> This will create a vertical scrollbar
.ScrollBars = fmScrollBarsVertical
'~~> Change the values of 2 as Per your requirements
.ScrollHeight = .InsideHeight * 2
.ScrollWidth = .InsideWidth * 9
End With
With Image1
.Picture = LoadPicture("C:\Users\Public\Pictures\Sample Pictures\Desert.jpg")
.BorderStyle = fmBorderStyleNone
.PictureSizeMode = fmPictureSizeModeClip
End With
End Sub