VisualBasic 中的一个问题!

2024-11-20 04:37:31
推荐回答(2个)
回答(1):

VB6有一个新功能,可以动态添加控件,不用控件数组:

object.Add (ProgID, name, container)

参数说明

Object 必需的。一个对象表达式,其值是“应用于”列表中的一个对象。
ProgID 必需的。一个标识控件的字符串。大多数控件的 ProgID 都可通过查看对象浏览器来决定。控件的 ProgID 是由控件的库和类组成的。
例如,CommandButton 控件的 ProgID 是 VB.CommandButton。在ProgID 与对象浏览器中所显示的不一样的情况下,Visual Basic
将显示一个包括正确 ProgId 的错误信息。
name 必要的。一个字符串,用来标识集合的成员。
container 可选的。一个对象引用,它指定控件的容器。如果没有指定或为NULL,缺省值为 Controls 集合所属的容器。通过指定该参数,可以把一个控件放置在任何现存的容器控件(如 Frame 控件)中。用户控件或 ActiveX 文档也可以作为一个容器。

举例:
//在picture1上面添加一个commandbutton
Private Sub Form_Load()
Form1.Controls.Add "VB.CommandButton", "cmdOk", Picture1
With Form1.cmdOk
.Visible = True
.Width = 500
.Caption = "确认(&Y)"
End With
End Sub

当然,我个人觉得更好的办法还是用控件数组,例如现在首先建立一个TextBox控件,并把Index属性改成0(注意,原来是空的,必须写上0)。
然后在程序中任意地方,采用例如Load TextBox1(1)就可以创建一个新的TextBox对象,通过TextBox1(1)访问。
当然你可以用循环创建指定数量的文本框,在不用的时候记得用 Unload TextBox1(1)给他注销掉。

回答(2):

你用的是VB几啊?是VB6还是VB.NET?.NET 是03或者05还是08啊