В общем есть класс, в нём объявлены пару контролов и одно событие:
- Код: Выделить всё
Option Explicit
Private WithEvents ctlTextbox As VB.TextBox
Private WithEvents ctlCheckBox As VB.CheckBox
Public Event OnChange(ByVal Text As String)
Private Sub Change(ByVal Text As String)
RaiseEvent OnChange(Text)
End Sub
Public Property Set TextBox(rhs As TextBox)
Set ctlTextbox = rhs
End Property
Public Property Get TextBox() As TextBox
Set TextBox = ctlTextbox
End Property
Public Property Set CheckBox(rhs As CheckBox)
Set ctlCheckBox = rhs
End Property
Public Property Get CheckBox() As CheckBox
Set CheckBox = ctlCheckBox
End Property
Private Sub ctlCheckBox_Click()
Call Change("clatz")
End Sub
На форме объявляю событие для этого класса
- Код: Выделить всё
Option Explicit
Public WithEvents cls As cClass1
Private Sub cls_OnChange(ByVal Text As String)
Debug.Print Text
End Sub
В общем, эта тема работает если я добавляю только одну группу контролов:
- Код: Выделить всё
Private Sub Form_Load()
Set cls = New cClass1
Set cls.TextBox = Controls.Add("VB.TextBox", "txt1", Form1)
Set cls.CheckBox = Controls.Add("VB.CheckBox", "chk1", Form1)
'если добавляем ещё одну группы контролов, то событие не генерится от первого чекбокса
Set cls.TextBox = Controls.Add("VB.TextBox", "txt2", Form1)
Set cls.CheckBox = Controls.Add("VB.CheckBox", "chk2", Form1)
SetTopMostWindow Me.hwnd, True
End Sub
Вопрос: как добиться генерирования события и от первого чекбокса и от второго?