1 (изменено: testtt, 2010-11-27 22:21:46)

Тема: VB: Динамическое добавление массива элементов на форму

Подскажите как - создать массив элемент с разным индексом.


Option Explicit
     Dim WithEvents VirtualObj As VBControlExtender
Private Sub Form_Load()

                  'будущая функция
   Dim ClassName As String      '- класс: кнoпка, картинка...
   Dim ObjName As String         '- имя Объекта
  'Dim VirtualObj As Control      '- параметры: видимость, координаты..
   Dim i
     For i = 1 To 10
     ClassName = "Forms.CommandButton.1"
     ObjName = "Command" & i
      Set VirtualObj = Form1.Controls.Add(ClassName, ObjName, Form1)
       With VirtualObj
                    .Left = 100         'длина
                    .Top = i * 440      'высота
                    .Visible = True
                    .object.Caption = ObjName
       End With
   Next i
End Sub
'-------------------------------------------------------------
Private Sub VirtualObj_ObjectEvent(Info As EventInfo)
    MsgBox Info.Name    'только последний элемент ????
End Sub

2 (изменено: testtt, 2010-11-28 02:11:17)

Re: VB: Динамическое добавление массива элементов на форму

Не нашел решения, пошел другим путем.

Если использовать Laod, получил набор кнопок с index, что и требовалось но!

Private Sub Command3_Click(Index As Integer)
              nCounter = nCounter + 1
Load Command3(nCounter)
     Command3(nCounter).Visible = True
     Command3(nCounter).Top = nCounter * 100
End Sub

Метод не позволяет создать кнопку на пустом месте c index(o), рисую кнопку, присваиваю index = 0.

Или я чего не понимаю.