如何使用New关键字在VB6中创建一个New对象,如new button,label等

时间:2017-04-16 07:10:52

标签: vb6 activex

我有一个程序可以获取多个名称,并将它们保存在一个文件中。我想为保存在文件中的每个人创建一个新对象(按钮,标签等)。我使用这段代码,但是我收到了错误:

Dim i as new object
set i= new button

我得到的错误: ActiveX组件无法创建对象

1 个答案:

答案 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):

Dynamically loaded controls

<强>解释

虽然我的回答没有直接使用New关键字解决您的问题,但它会向您显示如何动态添加新控件的正确方法,如果您不知道它们应该是多少,那么避免使用Named Controls并使用Array Controls