如何使用New关键字在VB6中创建新对象,如新按钮,标签等
问题描述:
我有一个程序可以获取多个名称,并将它们保存在一个文件中。我想为保存在文件中的每个人创建一个新对象(按钮,标签等)。我用这个代码,但我得到的错误:如何使用New关键字在VB6中创建新对象,如新按钮,标签等
Dim i as new object
set i= new button
,我得到了错误: ActiveX组件不能创建对象
答
在你的窗体中添加一个标签和一个命令按钮。我假设你已经这样做了。
选择标签,然后在属性窗口中将lblPerson
设置为Name
属性,将0
设置为Index
属性。
选择该按钮,然后在属性窗口中将cmdPerson
设置为Name
属性,将0
设置为Index
属性。
现在你有,你可以动态地在运行时设置两个Control数组:
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
来代替。
你只问关于创建屏幕控制? “对象”一词比这个词广泛得多。 – DaveInCaz
我想要一个可点击的对象,我可以为每个人显示一个页面 – Elias