【发布时间】:2018-03-12 10:22:17
【问题描述】:
我正在尝试通过使用 CallByName 和对象循环将某些图像的可见性设置为 false。
这里是代码
Private Sub command1Click
dim theobj_str as string
dim ctr as integer
for ctr = 1 to 3
theobj_str = "Images" & ctr
CallByName theobj_str, "Visible", vbLet,False
end for
END SUB
它在“CallByName **theobj_str**...”上抛出错误“TYPE MISMATCH”
CallByName 将对象作为其第一个参数。我需要以某种方式将字符串“theobj_str”转换为一个对象。我该怎么做?
如果我这样称呼它,CallByName 可以正常工作:CallByName Images2, "Visible", vbLet,False
谢谢
【问题讨论】:
-
CallByName需要一个对象(例如,表单、类等)作为第一个参数,第一个参数不能是字符串。CallByName允许您使用字符串值间接(本质上是后期绑定)访问对象的属性和方法。如果您的对象是一个表单,您可以先通过表单名称搜索表单集合来找到表单,然后使用表单引用作为CallByName参数。 -
我想我走到了死胡同。我会找到新方法的。谢谢马克。
标签: vb6 callbyname