我正在尝试更改VB6代码中的一些逻辑,我需要通过属性名称来获取控件属性。类似于Access control.properties 属性。
Dim propertyName as string
propertyName ="Visible"
Me.Controls("mnuRepots").Properties(propertyName)="True"
但我的VB6说对象不支持此属性或方法
答案 0 :(得分:4)
要根据动态名称执行方法或设置或获取属性,您可以使用CallByName
function,如下所示:
CallByName mnuReports, "Visible", vbLet, True
请注意,通过使用polymorphism或更简单的Select Case语句,在不同情况下调用不同代码几乎总是更好的方法。动态加载代码会使代码更难以阅读,并且(如果您从不受信任的来源获取任何输入)是一个容易搞砸的地方,并且允许人们调用不是您想要的方法他们打电话,导致安全漏洞。