楼主是什么意思!代码呢?
On the Form:three command!Test: Private Sub Form_Load()
For Each Control In Me.Controls
Debug.Print Control.Name
Next
End SubCommand3
Command2
Command1
On the Form:three command!Test: Private Sub Form_Load()
For Each Control In Me.Controls
Debug.Print Control.Name
Next
End SubCommand3
Command2
Command1
说白了,就象 vc 中那样通过 ID 得到控件对象。
但是,我不想用循环
For Each Control In Me.Controls
Next
,太耗资源了。
ctl.Caption = "测试"
End Sub
VB 也累,用什么好呢,JAVA?
w18ily(信誉:被封杀(郁闷,狂散8000,砍)) 兄:
我的意思是:
dim cmdGetAcdName as CommandButton
set cmdGetAcdName=getCommand("command1")
cmdGetAcdName.Caption="测试"
private function getCommand(byval strCmdName as string) as commandbutton
end function就是要实现 getCommand 这个函数!
object 必需的;变体型(对象)。函数将要执行的对象的名称。
procedurename 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。
calltype 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。
arguments() 可选的:变体型(数组)。
说明CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
Set GetControl = CallByName(Me,sControlName,vbGet)
End SubGetControl("Command1").Caption = "aaaaa"不过提醒你,这样的代码虽然看上去简单,但效率比For each 还要低最实用的办法是自己构造一个CollectionCollection.Add "Command1",Command1Collection("Command1").Caption = "AAAAAA"