Создать Control динамически - VB

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

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

Доброго всем времени суток!Пожалуйста помогите разобраться. Дана процедура (функция) в ней создается локальный временный массив он используется только в этой процедуре (функции).При работе с массивом объявляю его в теле процедуры как Static и проблем нет.
Листинг программы
  1. Sub MySub (Arr() As String, .....аргументы...)
  2. Static Mass() As Double
  3. /
  4. Что то делает
  5. /
  6. End Sub
Но если в качестве массива использую ListBox не работает.Когда Control кидаю на форму или создаю динамически при загрузке формы все нормально работает без ошибок.
Листинг программы
  1. Option Explicit
  2. Dim Mass As ListBox
  3. Private Sub Form_Load()
  4. Set Mass = Me.Controls.Add("VB.ListBox", "MyList")
  5. With Mass
  6. .Visible = False: .Text = .Name
  7. End With
  8. End Sub
Когда пишу
Листинг программы
  1. Sub MySub (Arr() As String, .....аргументы...)
  2. Static Mass() As Double
  3. Set Mass = Me.Controls.Add("VB.ListBox", "MyList")
  4. With Mass
  5. .Visible = False: .Text = .Name
  6. End With
  7. /
  8. Что то делает
  9. /
  10. End Sub
Я так понимаю,что все равно объект создается с таким же Name и их получается немеренно,а нужен только один и вести он должен как любая локальная переменная.Что то я не то делаю,а как правильно не знаю.Пожалуйста подскажите на примере или ткните носом где можно почитать вразумительное для "чайников". Спасибо.

Решение задачи: «Создать Control динамически»

textual
Листинг программы
  1. Option Explicit
  2. Dim B As Integer
  3.  
  4. Private Sub Form_Activate()
  5. B = Me.Controls.Count
  6. End Sub
  7.  
  8. Private Sub Form_Click()
  9. Static A As Control
  10.  
  11. If Me.Controls.Count <= B Then
  12. Set A = Me.Controls.Add("VB.TextBox", "MyText")
  13. With A
  14. .Visible = True: .Top = 2000
  15. .Text = .Name
  16. End With
  17. End If
  18.  
  19. End Sub

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


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

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

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

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

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

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