如何在VB程序运行时加入和删除控件
编号:QA000098
建立日期: 1998年11月13日 最后修改日期:2001年8月19日
所属类别:
周涛:
如何在程序运行时加入和删除控件?注:该控件在设计阶段并没有加入。
回答:
这在VB5.0中是做不到的。如果你想动态地增加控件,必须在设计阶段将控件放入Form,但可以将Visible属性设为False,将控件的Index属性设为0(即设置为控件数组)。然后在运行时使用Load方法加入控件。如下面这段代码:
Private Sub btnAdd_Click()
Static n As Integer
If n <>0 Then Load Label1(n)
Label1(n).Move 300, 200 + n *500
Label1(n).Visible = True
n = n + 1
End Sub
这段代码表示,当用户每按一次按钮时添加一个Label控制。
使用Unload可以动态删除控件数组中的控件。
在VB 6.0中,可以实现你的愿望,因为Form.Controls集合包括了Add方法、Remove方法。例如:
Option Explicit
Private WithEvents btnObj As CommandButton
Private Sub btnObj_Click()
MsgBox "这是动态添加的按钮。"
End Sub
Private Sub Form_Load()
Set btnObj = Controls.Add("VB.CommandButton", "btnObj")
With btnObj
.Visible = True
.Width = 2000
.Caption = "Hello"
.Top = 1000
.Left = 1000
End With
End Sub
这里使用WithEvent指定动态添加的控件的事件。
zoe问:
操作系统: win98
编程工具: vb
问题: vb中如何动态的向FORM上添加控件,并且能够把改变保存下来?
水平: 中级
答:添加控件可以参考上面的回答。要把改变永久保存在EXE中不太可能,你可以参考QA003035 "如何才能保留在控件中添加上的内容"。
此问题由李海回答。
| |
|
|
| |
|
|