Сложный уровень: как поймать событие от динамических контролов? - VB
Формулировка задачи:
Народ, если кто в курсе темы, может подскажет в какую сторону двигаться...
В общем есть класс, в нём объявлены пару контролов и одно событие:
На форме объявляю событие для этого класса
В общем, эта тема работает если я добавляю только одну группу контролов:
Вопрос: как добиться генерирования события и от первого чекбокса и от второго?
на вбстритс задавал этот вопрос, Господин Хакер рекомендует использовать объекты-спутники и спутники-подписчики... Но на практике пока не удаётся найти разъяснение этому процессу.
Может быть у местных форумчан есть сведения, как использовать эти спутники?
На всякий пожарный вот ветка: Ссылка удалена
Листинг программы
- 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
Решение задачи: «Сложный уровень: как поймать событие от динамических контролов?»
textual
Листинг программы
- For I = 1 To N
- Load TextBox1(I)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д