MyTetra Share
Делитесь знаниями!
Время создания: 16.03.2019 23:43
Текстовые метки: TabStrip, ToolBox, userform, набор вкладок, элементы управления
Раздел: !Закладки - VBA - Форма
Запись: xintrea/mytetra_db_adgaver_new/master/base/15144063070knpvjfnr5/text.html на raw.githubusercontent.com

Элемент управления TabStrip

августа 28, 2015 admin

Элемент управления VBA TabStrip содержит практически те же свойства, что и MultiPage. Главное отличие заключается в том, что для MultiPage каждая страница может содержать собственный набор элементов управления, а для класса TabStript при переходе по вкладкам отображает всегда одну и ту же информацию. Так, мы при использовании Набора страниц, могли для первого корешка добавить надпись, для второго – список, ну а для третьего – кнопку, для компонента Набор вкладок так не выйдет, если мы на его поверхность добавим, например, объект ListBox(список), то он будет отображаться всегда при переходе между вкладками.

рис . 1.1 Элемент управления TabStrip на панели ToolBox

рис. 1.2 Элемент управления  TabStrip на форме

Как только вы выберете в окне ToolBox компонент TabStrip, и перетащите его на поверхность формы, то у вас будут отображаться только две вкладки, например, Tab1 и Tab2. Для управления ими нужно нажать правую кнопку мыши, в итоге появится контекстное меню со следующими пунктами:

  • NewPage – данный пункт меню дает возможность добавить      новую вкладку к тем, что уже существуют. Именование вкладок идет в стиле      Tab1, Tab2, … , TabN.
  • DeletePage – позволяет удалить ту вкладку, по поверхности      которой вы кликнули.
  • Rename – собственно, данный пункт отвечает за      переименование вкладки, обратите внимание, что в отличии от объекта      MultiPage, для корешков класса TabStrip VBA нет свойства Caption в окне      Свойств.
  • Move – позволяет переместить выбранную вкладку, тут      можно произвести перемещение флажка в заданном направлении.

Как и для объекта, Набор Страниц, для класса Набор Вкладок определены следующие свойства:

MultiRow – vba свойство, которое может содержать логические значения True или False. MultiRow является актуальным тогда, когда вкладок становится слишком много, и они все не умещаются на поверхность формы UserForm. При установленном значении в False, все корешки будут лежать на одной прямой, и будет добавлена специальная прокрутка для перехода к тем корешкам, которые не видны. При установленном значении в true – вкладки будут располагаться на нескольких строках, при условии, что все они не умещаются в одну строку на поверхности формы.

TabOrientation – определяет расположение вкладок, возможны четыре значения: fmTabOrientationTop – вверху, fmTabOrientationBottom – внизу, fmTabOrientationLeft – слева и fmTabOrientationRight – справа.

SelectedItem – свойство содержит информацию о выбранной вкладке.

Value – целое число, содержит номер выбранного корешка, нумерация начинается с нуля.

Style – позволяет задать стиль: fmTabStyleTabs – в виде закладок, fmTabStyleButton – в виде кнопок и fmTabStyleNone – корешки отсутствуют

Как и для большинства подобных элементов управления, для TabStrip основным событием является событие Change, оно возникает при переходе между корешками.

И так, настало время написать простой пример с использованием класса TabStrip, пример будет подобен тому, что мы рассматривали в статье про объект MultiPage.

В окно Редактор Проектов добавьте новую форму (меню Insert/UserForm) и новый модуль (меню Insert/Module). Форму я назвал TSForm, а модуль – TSModule. В редакторе кода для модуля сразу пропишите:

Sub TSModule()

TSForm.Show

End Sub

Тут в процедуре TSModule мы указываем, что при запуске макроса нужно показать форму с именем TSForm.

Хорошо, теперь на поверхность формы нужно добавить следующие элементы управления (их мы выбираем в окне ToolBox):

TabStrip – просто перетащите данный компонент на поверхность формы, кликните правой кнопкой по одному из флажков и добавьте еще один. В контекстном меню задайте следующие имена: Список 1, Список 2 и Список 3.

ListBox – на поверхность TabStrip добавьте элемент управления список, помните, что он будет отображаться на всех вкладках и един для всего объекта Набор Вкладок.

Label – текстовая метка, разместите ее внизу на поверхности формы, свойство Caption пусть остается пустым.

Теперь в редакторе кода для формы (UserForm) пропишите следующий код:

Private Sub TabStrip1_Change()

Label1.Caption = TabStrip1.SelectedItem.Caption

If TabStrip1.Value = 0 Then

ListBox1.Clear

For i = 0 To 50

ListBox1.AddItem “число_” & i

Next

End If

If TabStrip1.Value = 1 Then

ListBox1.Clear

For i = 50 To 100

ListBox1.AddItem “число_” & i

Next

End If

If TabStrip1.Value = 2 Then

ListBox1.Clear

For i = 100 To 150

ListBox1.AddItem “число_” & i

Next

End If

End Sub

Private Sub UserForm_Initialize()

Label1.FontSize = 16

Label1.ForeColor = &H1055F2

Label1.TextAlign = fmTextAlignCenter

Label1.Caption = TabStrip1.SelectedItem.Caption

If TabStrip1.Value = 0 Then

ListBox1.Clear

For i = 0 To 50

ListBox1.AddItem “число_” & i

Next

End If

If TabStrip1.Value = 1 Then

ListBox1.Clear

For i = 50 To 100

ListBox1.AddItem “число_” & i

Next

End If

If TabStrip1.Value = 2 Then

ListBox1.Clear

For i = 100 To 150

ListBox1.AddItem “число_” & i

Next

End If

End Sub

В общих чертах, при переходе между вкладками происходит проверка свойства Value, в зависимости от значения, список будет содержать те или иные данные. При инициализации самой формы мы будет присваивать свойству Caption объекта label имя выбранного в данный момент флажка объекта TabStrip VBA, а также будет заполнять список данными.

 

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования