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中文企业版中运行通过。
(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注)


发布评论