热情软件屋

 

如何在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 "如何才能保留在控件中添加上的内容"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio