如何vb中动态添加控件

如何vb中动态添加控件,第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)给他注销掉。

http://zhidao.baidu.com/question/5248806.html

你的这帖我也回了。

讲话要文明点,特别是问问题时,要不谁还敢回答?

给你两种方法

Option Explicit

Dim oCtrl As Object

'使得控件可以响应事件

Dim WithEvents MyBtn As CommandButton

Private Sub Form_Load()

Dim i As Integer

'先在窗体上加载个Label1(0)的标签控件

For i = 1 To 3

Load Me.Label1(i)

Label1(i).Top = Label1(i - 1).Top + 2 * Label1(0).Height

Label1(i).Caption = "Label1(" &i &")"

Label1(i).Visible = True

Next

'Debug.Print Me.Label1.Count

LoadControl

LoadControlWithEvents

End Sub

Private Sub LoadControl()

Set oCtrl = Controls.Add("VB.CommandButton", "Button1")

With oCtrl

.Caption = "不会响应事件的按钮"

.Width = 2000

.Left = 100

.Top = 200

.Visible = True '控件加载后默认为不可见,故此步骤至关重要!

End With

End Sub

Private Sub LoadControlWithEvents()

Set MyBtn = Controls.Add("VB.CommandButton", "Button2")

With MyBtn

.Caption = "我可以响应事件!"

.Width = 1800

.Left = 100

.Top = 700

.Visible = True

End With

End Sub

Private Sub MyBtn_Click()

MsgBox "我要移除动态加载的控件了!"

Me.Controls.Remove "Button1"

Me.Controls.Remove "Button2"

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11750144.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存