Массивы элементов управления

Массивы элементов управления 

Массив элементов управления это группа идентичных элементов управления (командные кнопки, текстовые поля и т.д.) имеющие общие процедуры обработки событий. 

Работа с массивами элементов управления требует меньших затрат на написание программы и придает ей большую гибкость в работе. 

Почти все элементы управления (но только идентичные) могут организовываться в массивы. 

На данный момент времени существует два способа создания массива элементов управления: 

Создание массива элементов управления во время разработки; 

Создание массива элементов управления во время выполнения программы; 

Рассмотрим процесс создания массива элементов управления. 

Создание массива элементов управления во время разработки 

Если Вам известно конкретное количество тех или иных элементов управления, то будет целесообразней создать их во время разработки. Сделать это очень просто. 

Создаем на форме, к примеру, элемент управления CommandButton1, убеждаемся, что он он выделен и копируем его в буфер обмена (Ctrl+C). Далее выполняя операцию Ctrl+V, получаем на форме еще один элемент управления CommandButton1. В результате этих действий Вы создали массив элементов из двух командных кнопок! Теперь внимательно просмотрите окно ‘Properties’, там Вы увидите,  что созданные командные кнопки, которые отличаются друг от друга только своим индексом. Index - это то свойство, которое позволяет элементам управления организовываться в массивы. Открыв окно кода, Вы увидете, что несмотря на то, что на форме находятся две командные кнопки, в разделе Object присутствует только – Command1. Выбрав ее Вы попадете в процедуру обработки события 

Click, обратите внимание, что в данном случае процедура содержит аргумент Index. Аргумент Index указывает на индекс того элемента управления, для которого сгенерировано событие. 

Если Вы следовали описанию и создали на форме командные кнопки, то впишите следующий код в процедуру обработки Click и Вам станет ясно как это работает. 

Private Sub Command1_Click (Index As Integer) 

 'В заголовке формы отображаем индекс нажатой кнопки 

 Me.Caption = "Нажата кнопка с индексом - " & Index 

End Sub 

Создание массива элементов управления во время выполнения программы 

Если Вам заранее не известно количество тех или иных элементов управления, которое необходимо будет создать, то не волнуйтесь, т.к. и это очень просто. Создаем на форме, к примеру, элемент управления CommandButton1, в окне ‘Properties’ для свойства Index устанавливаем значение 0 (нуль). В результате выполненых Вами действий создается массив элементов управления с одним элементом. Для создания последующих элементов управления (в данном случае командных кнопок) Вам необходимо будет ввести соответствующий код в процедуру обработки события выполнении при которой должен (или должны) возникнуть новые элементы управления. В данном случае мы вставляем код в процедуру обработки события Form_Load формы. 

Private Sub Form_Load () 

 'Создаем новую командную кнопку в существующий массив 

 Load Command1(1) 

 'Размещаем ее там, где Вам необходимо... 

 Command1(1).Top = Command1(0).Top + Command1(0).Height 

 Command1(1).Left = Command1(0).Left 

 'Делаем новую кнопку видимой 

 Command1(1).Visible = True 

End Sub 

Вот и все ! 

Если Вы следовали описанию и создали на форме командные кнопки, то впишите следующий код в процедуру обработки Click и Вам станет ясно как это работает. 

Private Sub Command1_Click (Index As Integer) 

 'В заголовке формы отображаем индекс нажатой кнопки 

 Me.Caption = "Нажата кнопка с индексом - " & Index 

End Sub