Сложный уровень: как поймать событие от динамических контролов? - VB

Узнай цену своей работы

Формулировка задачи:

Народ, если кто в курсе темы, может подскажет в какую сторону двигаться... В общем есть класс, в нём объявлены пару контролов и одно событие:
Листинг программы
  1. Option Explicit
  2. Private WithEvents ctlTextbox As VB.TextBox
  3. Private WithEvents ctlCheckBox As VB.CheckBox
  4. Public Event OnChange(ByVal Text As String)
  5. Private Sub Change(ByVal Text As String)
  6. RaiseEvent OnChange(Text)
  7. End Sub
  8. Public Property Set TextBox(rhs As TextBox)
  9. Set ctlTextbox = rhs
  10. End Property
  11. Public Property Get TextBox() As TextBox
  12. Set TextBox = ctlTextbox
  13. End Property
  14. Public Property Set CheckBox(rhs As CheckBox)
  15. Set ctlCheckBox = rhs
  16. End Property
  17. Public Property Get CheckBox() As CheckBox
  18. Set CheckBox = ctlCheckBox
  19. End Property
  20. Private Sub ctlCheckBox_Click()
  21. Call Change("clatz")
  22. End Sub
На форме объявляю событие для этого класса
Листинг программы
  1. Option Explicit
  2. Public WithEvents cls As cClass1
  3. Private Sub cls_OnChange(ByVal Text As String)
  4. Debug.Print Text
  5. End Sub
В общем, эта тема работает если я добавляю только одну группу контролов:
Листинг программы
  1. Private Sub Form_Load()
  2. Set cls = New cClass1
  3. Set cls.TextBox = Controls.Add("VB.TextBox", "txt1", Form1)
  4. Set cls.CheckBox = Controls.Add("VB.CheckBox", "chk1", Form1)
  5. 'если добавляем ещё одну группы контролов, то событие не генерится от первого чекбокса
  6. Set cls.TextBox = Controls.Add("VB.TextBox", "txt2", Form1)
  7. Set cls.CheckBox = Controls.Add("VB.CheckBox", "chk2", Form1)
  8. SetTopMostWindow Me.hwnd, True
  9. End Sub
Вопрос: как добиться генерирования события и от первого чекбокса и от второго? на вбстритс задавал этот вопрос, Господин Хакер рекомендует использовать объекты-спутники и спутники-подписчики... Но на практике пока не удаётся найти разъяснение этому процессу. Может быть у местных форумчан есть сведения, как использовать эти спутники? На всякий пожарный вот ветка: Ссылка удалена

Решение задачи: «Сложный уровень: как поймать событие от динамических контролов?»

textual
Листинг программы
  1. For I = 1 To N
  2.    Load TextBox1(I)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы