首页 > 解决方案 > 如何在 VBA 中找到控件的父用户窗体

问题描述

此代码是类模块的一部分。

Private pImg As Image 'For example, pImg = U_Cursor.Img

Public Property Let ItemID(ID As Byte)
    pImg.Picture = LoadPicture(ThisWorkbook.Path & "\Images\Img" & ID & ".gif")

    *ParentUserform*.Repaint 'ParentUserform is the userform I'm looking for
End Property

我必须强制 Excel 重新绘制用户窗体,否则图像有时不会在屏幕上更新。

有没有办法知道哪个用户表单“pImg”在?

如果没有有效的方法,我可以将另一个变量添加到包含用户表单名称的类模块中,但我不希望这样做。

标签: excelvba

解决方案


pImg.Parent如果pImg 是用户表单的直接子级,它将起作用。如果它在另一个容器中(例如多容器或框架),则需要爬树.Parent

在您的代码处于中断模式时,请查看 Locals 窗口并查看pImg


推荐阅读