Динамические формы и их элементы - VB

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

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

Доброго времени суток. Подскажите, при создании динамических компонентов формы, как к ним обращаться, вызывать события и получать значения?
Листинг программы
  1. Private Sub TextBox1_AfterUpdate()
  2. MultiPage1.Visible = True
  3. cpages = MultiPage1.Pages.Count
  4. For cpage = (cpages - 1) To 0 Step -1
  5. MultiPage1.Pages.Remove (cpage)
  6. Next cpage
  7. For PagCount = 1 To CInt(TextBox1.Text)
  8. indexPage = PagCount - 1
  9. MultiPage1.Pages.Add , ("Кассета № " + CStr(PagCount)), indexPage
  10. With MultiPage1.Pages(indexPage).Controls.Add("Forms.Label.1")
  11. .Top = 10
  12. .Left = 6
  13. .Height = 18
  14. .Width = 126
  15. .Caption = "Число образцов"
  16. .FontName = "Times New Roman"
  17. .FontSize = 14
  18. End With
  19. With MultiPage1.Pages(indexPage).Controls.Add("Forms.TextBox.1")
  20. .Name = "TextBox" & (PagCount + 1)
  21. .Top = 4
  22. .Left = 162
  23. .Height = 24
  24. .Width = 126
  25. .TextAlign = 2
  26. End With
  27.  
  28. Next PagCount
  29. End Sub
Создаю на MultiPage как Lable так и TextBox. как мне создать событие при обновлении textbox и получить внесенное значение в textbox ? Спасибо. P.S. пытался сделать динамический код для каждого textbox, но он не работает(может из-за имени некорректного)
Листинг программы
  1. For PagCount = 1 To 5
  2. Code = ""
  3. Code = Code & "Private Sub TextBox" & (PagCount + 1) & "_AfterUpdate()" & vbNewLine
  4. Code = Code & "MsgBox Me.Name" & vbNewLine
  5. Code = Code & "End Sub" & vbNewLine

Решение задачи: «Динамические формы и их элементы»

textual
Листинг программы
  1. Option Explicit
  2. Dim WithEvents txb As MSForms.TextBox
  3.  
  4.  
  5. Private Sub txb_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  6.     'Теперь если кликнуть по текстовому полю возникнет ..
  7.    MsgBox "Событие от переменной txb"
  8. End Sub
  9.  
  10. Private Sub UserForm_Initialize()
  11.    
  12.     Set txb = Me.Controls.Add("Forms.TextBox.1", "txb", 1): With txb
  13.         .Move 0, 0, 200, 20
  14.         .Text = "Руки проч от коровьих сисек !"
  15.     End With
  16.    
  17. End Sub

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


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

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

15   голосов , оценка 3.4 из 5

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

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

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