我可以使用CallByName(換句話說,我可以獲得Class.SubValue
)訪問類的子值。
但是,當我想要使用CallByName獲得Class.SUBCLASS.SubValue
時出現錯誤。
是否有可能使用CallByName(或通過使用smtg其他)?使用CallByName訪問子類或子屬性
下面是一個典型的代碼:
Class Class1
Public someVariable as Long=123 'now "Class1" has "someVariable"
End Class
Class Class2
Public subClass as new Class1 'now "Class2" has a SUBCLASS "Class1"
End Class
Sub Test()
Dim c1 as New Class1, c2 as New Class2
'This works fine, and I can get c1.someVariable. It's OK.
a=CallByName(c1,"someVariable",CallType.Get)
'But I get error here... and I can't get c2.subClass.someVariable
b=CallByName(c2,"subClass.someVariable",CallType.Get)
End Sub
- 編輯:這是實際的問題。 -
我想從文件加載參數形成的控制,並在文件中的參數是這樣寫的:
<ControlName>.<Property>=<Value> | TextBox1.Text=SomeText | Button2.Left=1234
當我用我得到錯誤:
CallByName(MyForm, "<ControlName>.<Property>", CallType.Set, "<Value>")
如何我可以解決我的問題(使用CallByName或smtg其他)?
什麼是使用這種傳統和訪問成員的陳舊方式的意義呢?只是'c2.subClass.someVariable'不夠? ;) – 2013-03-24 19:36:41
在實例中,檢查這個其他答案:http://stackoverflow.com/questions/1267588/disadvantages-of-callbyname-function-in-vb-net – 2013-03-24 19:37:35
'c2.subClass.someVariable'是不夠的,因爲我需要更改我的表單的控件的**文本**和**大小**。例如,我需要更改'MyForm.TextBox1.Left','MyForm.Button2.Text'和smtg。 – Jet 2013-03-24 19:45:07