Обработка событий для динамических элементов управления в VB6 - PullRequest
4 голосов
/ 01 марта 2010

Как мне добиться обработки событий для динамических элементов управления в VB6? Есть идеи?

Ответы [ 2 ]

2 голосов
/ 02 марта 2010

Самый простой способ - объявить переменную уровня модуля того же типа, что и элемент управления, и использовать ключевое слово 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

Существуют более сложные варианты, если вы хотите иметь возможность обрабатывать события из разных элементов управления, возможно, разных типов, через одну центральную подпрограмму.

2 голосов
/ 01 марта 2010

Это зависит от того, является ли элемент управления внутренним или нет.

Эта статья объясняет это.

...