怎么调用用字符串代替的方法和名字
怎么调用用字符串代替的方法和名字,比如
语句 textbox1.Left=0
怎么实现如下类似语句:
i=1
"textbox " & cstr(i).Left=0
"textbox " & cstr(i). "Top "=0
首先声明肯定能实现,我见过可惜忘了,会的帮忙说说。
QQ或者mail都可以ty54@sina.com
分数送给第一个能解决的回复人,只要说出关键就可以。
[解决办法]
Private Sub Timer1_Timer()
ss = ss + 1
x = x + 30 '标签移动值
If ss > = 120 Then ss = 0: x = 0 '循环
CallByName Label1, "Move ", VbMethod, x '用CallByName令标签移动
End Sub
FORM: http://www.zzole.com/Article/program/282/763/2006/2006101113190.html
[解决办法]
你自己看下面几个例子,就会明白了:
先查MSDN:
http://msdn2.microsoft.com/en-us/library/chsc1tx6(VS.80).aspx
然后:
http://www.vb-helper.com/howto_callbyname.html
http://www.insteptech.com/techLibrary/vbClassic/vb6_lang.htm
深一点:
http://gpwiki.org/index.php/VB:Building_a_Better_Scripting_Language_by_Using_Dynamic_Classes
再深一点:
http://www.vbrad.com/article.aspx?id=56
[解决办法]
也可以检测各控件,找到符合指定的控件进行操作
Private Sub Command1_Click()
Dim tc As Control
Dim thec As String
thec = "text1 "
For Each tc In Me.Controls
MsgBox tc.Name '这就可以得到每个控件的名字
If LCase(tc.Name) = LCase(thec) Then tc.Text = "改变控件 ": tc.Left = 0: tc.Top = 0
Next
End Sub
[解决办法]
Dim s As String
s = "text1 "
Me.Controls(s).Left = 1000