VB6中动态控件的事件处理

时间:2010-03-01 12:25:04

标签: vb6 event-handling

如何在VB6中实现动态控件的事件处理?有什么想法吗?

2 个答案:

答案 0 :(得分:2)

这取决于控制是否是固有的。

This文章解释了它。

答案 1 :(得分:2)

最简单的方法是声明与控件类型相同的模块级变量,并使用WithEvents关键字。例如

Option Explicit
' Declare object variable as CommandButton and handle the events.'
Private WithEvents cmdObject As CommandButton 

Private Sub Form_Load()
   'Add button control and keep a reference in the WithEvents variable'
   Set cmdObject = Form1.Controls.Add("VB.CommandButton", "cmdOne")
   cmdObject.Visible = True
   cmdObject.Caption = "Dynamic CommandButton"
End Sub

'Handle the events of the dynamically-added control'
Private Sub cmdObject_Click()
    Print "This is a dynamically added control"
End Sub

如果您希望能够通过一个中心例程处理来自许多不同控件(可能是不同类型)的事件,则会有更复杂的变体。