如何从主窗体更新子窗体中的图像框控件源

Posted

技术标签:

【中文标题】如何从主窗体更新子窗体中的图像框控件源【英文标题】:How to update Image box controlsource in subform from main form 【发布时间】:2020-11-17 17:03:14 【问题描述】:

我有一个主窗体和一个加载图像记录的子窗体。当我设置表单时,我通过以下属性为子表单本身的图像框指定了控制源:

=[Forms]![MainForm]![cmbImageLocation] & [RelativePath] & [ImageFileName]

其中cmbImageLocation 是主窗体上带有根目录的组合框,RelativePath 是文件夹位置,ImageFileName 是具体的 jpeg 文件。

例如:cmbImageLocationD:\RelativePathOneDrive\ImageFileName001.jpg

完整的连接路径是 D:\OneDrive\001.jpg

如果在图片框子窗体控件源中使用此代码,图片加载成功。 我现在需要将控制源规范从子窗体移动到主窗体的 VBA。

我在子窗体中设置了一个测试文本框,并在主窗体的 VBA 中运行了这段代码:

Me.subFormImages!txtTest.ControlSource = "=[Forms]![MainForm]![cmbImageLocation] & [RelativePath] & [ImageFileName]"

我得到了正确的字符串 D:\OneDrive\001.jpg

如果我用同样的代码更新子窗体上的图片框控件源:

Me.subFormImages!ImgBox.ControlSource = "=[Forms]![MainForm]![cmbImageLocation] & [RelativePath] & [ImageFileName]"

我明白了

“运行时错误'438':对象不支持此属性或方法”。

【问题讨论】:

【参考方案1】:

我通过将组合框放在子窗体的标题中来解决这个问题,因此我不需要通过主窗体的 vba 操作控制源。

【讨论】:

以上是关于如何从主窗体更新子窗体中的图像框控件源的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 从主窗体设置子窗体上的窗体属性

在C#winform中如何遍历子窗体中所有的控件

子窗体中的子窗体控件

Windows 窗体中的刷新组合框

子表单组合框行源更新 - 如何更新下拉列表

delphi 对窗体中的控件进行遍历