使用字符串作为参数的callbyname vb6
我试图通过使用CallByName和通过对象的循环将一些图像的可见性设置为false 这是密码使用字符串作为参数的callbyname vb6,vb6,callbyname,Vb6,Callbyname,我试图通过使用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*
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\u str**…”
上抛出错误“类型不匹配”
CallByName将对象作为其第一个参数。我需要将字符串“theobj_str”转换成一个对象。我该怎么做
CallByName可以很好地工作,如果我这样称呼它:CallByName Images2,“Visible”,vbLet,False
谢谢如果您不需要使用CallByName,您可以在controls集合中循环并检查类型。如果类型与要隐藏的控件匹配,则可以通过这种方式设置其visible属性 代码如下所示:
Private Sub Command_Click()
SetControlVisibility "Image", False
End Sub
Private Sub SetControlVisibility(ByVal controlType As String, ByVal visibleValue As Boolean)
Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeName(ctrl) = controlType Then
ctrl.Visible = visibleValue
End If
Next
End Sub
这样做将允许您向表单添加更多图像控件,而无需记住更改for循环中的计数
希望对您有所帮助。
CallByName
需要一个对象(如表单、类等)作为第一个参数,第一个参数不能是字符串CallByName
允许您使用字符串值间接访问对象的属性和方法(基本上是后期绑定)。如果您的对象是一个表单,您可以首先通过按表单名称搜索表单集合来查找表单,然后使用表单引用作为CallByName
参数。我想我走到了死胡同。我会找到一个新的方法的。谢谢马克。可能是重复的