我有一个程序可以获取多个名称,并将它们保存在一个文件中。我想为保存在文件中的每个人创建一个新对象(按钮,标签等)。我使用这段代码,但是我收到了错误:
Dim i as new object
set i= new button
我得到的错误: ActiveX组件无法创建对象
答案 0 :(得分:2)
在表单中,添加标签和命令按钮。我假设你已经这样做了。
选择标签,然后在“属性”窗口中,将lblPerson
设置为Name
属性,将0
设置为Index
属性。
选择按钮,然后在“属性”窗口中,将cmdPerson
设置为Name
属性,将0
设置为Index
属性。
现在你有两个可以在运行时动态设置的控制数组:
Public Sub AddPersonListControls(idx As Long)
Load cmdPerson(idx)
cmdPerson(idx).Caption = "Details"
cmdPerson(idx).Visible = True
cmdPerson(idx).Top = cmdPerson(idx - 1).Top + cmdPerson(idx - 1).Height + 10
cmdPerson(idx).Left = cmdPerson(0).Left
Load lblPerson(idx)
lblPerson(idx).Caption = "Person Name " & idx
lblPerson(idx).Visible = True
lblPerson(idx).Top = lblPerson(idx - 1).Top + lblPerson(idx - 1).Height + 10
lblPerson(idx).Left = lblPerson(0).Left
End Sub
无论您在何处加载人员数据,都要创建相应的控件:
Dim numPersons As Long
numPersons = 3 ' just an example
Dim i As Long
For i = 1 To numPersons - 1
AddPersonListControls i
Next
您的表单应如下所示(注意:Form1.ScaleMode
设置为3-Pixels
):
<强>解释强>
虽然我的回答没有直接使用New
关键字解决您的问题,但它会向您显示如何动态添加新控件的正确方法,如果您不知道它们应该是多少,那么避免使用Named Controls
并使用Array Controls
。