2023年12月31日发(作者:)

Vb6.0动态增删控件的实现

经常在网上和杂志上看到问vb怎样动态增加控件,笔者在编一程序时,曾经用到,下面作一个较为详细的描述,希望能给大家有所帮助。

最简单的方法:控件数组。

在VB编程中有一个控件数组的概念, 通过置控件的INDEX 索引值的控制,

不仅可以建立一组具有紧密联系的相同控件, 而且可以实现在程序运行状态中增加控件数目功能, 这在实际编程中应用的非常广泛;在编程中实现具体增加控件数组如下代码即可,请先在窗体上添加一个option控件,名称为option1,并将index属性设为0.

Private Sub Form_ load()

Dim i As Integer

For i = 1 To 5

Load Option1(i) ' 给数组添加 5 个选项按钮。

Option1(i).Top = Option1(i - 1).Top + 350’设置顶端位置

Option1(i).left= Option1(i - 1).left+800

Option1(i).Visible = True’显示增加的控件

Option1(i).caption = i

Next i

End Sub

Private Sub Option1_Click(Index As Integer)

MsgBox ("您点击了index为" & Index & "的option控件.")

End Sub

(二)通过Add方法实现

Add方法在Controls集合中添加一个控件并返回一个对控件的引用。Add方法的语法为:

(ProgID,Name,Container)

其中Object为要添加元素的集合,ProgID为标示的字符串.可通过对象浏览器来确定,例如,CommandButton控件的ProgID是dButton. Name是控件的名称. Container是包含添加控件的容器,可以为form或Frame控件等等。

Option Explicit

'通过使用WithEvents关键字声明一个对象变量为新的命令按钮

Private WithEvents NewButton As CommandButton

'增加控件

Private Sub Command1_Click()

If NewButton Is Nothing Then

'增加新的按钮cmdNew

Set NewButton = ("dButton",

"cmdNew", Me)

'确定新增按钮cmdNew的位置

+ + 240,

n = "新增的按钮"

e = True

End If

End Sub

'新增控件的单击事件

Private Sub NewButton_Click()

MsgBox "您选中的是动态增加的按钮!"

End Sub

(三)借助 VBControlExtender实现.

如果增加的控件没有添加在”工具箱”中,必须把控件的License关键字添加到License集合中,并且需要声明它为 VBControlExtender对象,并且向Add

方法引用上设置该对象变量。然后,利用VBControlExtender事件来编程该控件的事件。请在窗体上添加一个名词为 text1的控件。

Option Explicit

Dim WithEvents ctlDynamic As VBControlExtender

Private Sub Form_Load()

Dim I as integer

"rl"

Set ctlDynamic = ("rl", "myctl", Form1)

' 设置控制的位置和大小

1, 1, 2500, 3500

' 添加一些节点到 TreeView控件

For i = 1 To 10

Key:="Test" & Str(i), Text:="Test" & Str(i)

Relative:="Test" _

& Str(i), Relationship:=4, Text:="TestChild" & Str(i)

Next i

' 显示控件

e = True

End Sub

Private Sub ctlDynamic_ObjectEvent(Info As EventInfo)

' 测试 TreeView控件的 Click事件

select case

case "Click"

= "你点击了 " &

case else

‘添加其他事件

End select

End Sub

(四)控件删除

删除控件使用Remove方法,但只能删除那些用Add方法添加的控件.对于(二)中添加的控件NewButton,可以用如下代码删除

Private Sub Command2_Click()

If NewButton Is Nothing Then

Else

NewButton

Set NewButton = Nothing

End If

End Sub

以上程序代码在vb6.0中文企业版中运行通过。

(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注)