如何使用New关键字在VB6中创建新对象,如新按钮,标签等

问题描述:

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

Dim i as new object 
set i= new button 

,我得到了错误: ActiveX组件不能创建对象

+0

你只问关于创建屏幕控制? “对象”一词比这个词广泛得多。 – DaveInCaz

+0

我想要一个可点击的对象,我可以为每个人显示一个页面 – Elias

在你的窗体中添加一个标签和一个命令按钮。我假设你已经这样做了。

选择标签,然后在属性窗口中将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):

Dynamically loaded controls

说明:

虽然我的回答并不直接与New关键字解决您的问题,它说明你正确的方法如何在动态的情况下增加新的控制你不知道多少,他们应该是,因此通过避免使用Named Controls并通过使用Array Controls来代替。

+0

感谢您的帮助,但我应该在哪里添加AddPersonListControls? – Elias

+0

对此的回答是广泛的评论,请发布您的文本文件样本,其中包含个人数据,并且有人会告诉您如何阅读该文件。 – deblocker