TabStrip |
Автор (С) Андрей Колесов, Ольга Павлова | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
30.07.2001 г. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Элемент управления TabStrip предназначен для создания многостраничных окон с закладками (или, иначе, вкладками -- tabs) и внешне похож на алфавит записной книжки. Он состоит из одной или нескольких закладок - объектов Tab, принадлежащих к коллекции Tabs, а также общей области, в которой для каждой закладки выводится своя информация.
Элемент управления TabStrip предназначен для создания многостраничных окон с закладками (или, иначе, вкладками -- tabs) и внешне похож на алфавит записной книжки. Он состоит из одной или нескольких закладок - объектов Tab, принадлежащих к коллекции Tabs, а также общей области, в которой для каждой закладки выводится своя информация. Как во время разработки, так и во время выполнения программы закладки можно добавлять к TabStrip и удалять из него, а также менять их свойства. Окна с закладками широко применяются для настройки программ и различных сложных объектов, особенно когда число параметров велико и при этом они допускают естественную группировку по какому-либо логическому принципу (например, TabStrip удобно использовать для настройки параметров форматирования текста совместно с элементом управления RichTextBox). Внешний вид TabStripЗакладки могут выглядеть либо как прямоугольные кнопки, либо как алфавит записной книжки. Их вид определяется свойством Style элемента TabStrip: кнопкам соответствует значение tabButtons, алфавиту - значение tabTabs. В TabStrip всегда выделяется внутренняя (клиентская) область и граница. Общий его размер и положение определяются свойствами Top (положение верхней границы), Left (положение левой границы), Height (высота) и Width (ширина). Эти параметры программист настраивает при разработке, непосредственно указывая нужные значения или перемещая маркеры на форме. Размер и положение внутренней (клиентской) области определяется автоматически во время работы программы и возвращается в значениях свойств ClientLeft, ClientTop, ClientHeight и ClientWidth. Если для TabStrip выбран вид tabTabs, то внутренняя область обводится по контуру, если же tabButtons, то она не обводится. Свойство MultiRow обеспечивает расположение закладок в несколько рядов, а свойство TabWidthStyle позволяет управлять их внешним видом. Если оно имеет значение tabFixed, то при включении свойств TabFixedHeight и TabFixedWidth все закладки будут иметь одинаковую высоту и ширину. TabStrip и контейнерыЗаметим, что TabStrip - не контейнер: если добавить его к пользовательской форме и затем поместить во внутреннюю область, например, кнопку, эта кнопка не будет перемещаться вместе с TabStrip. Следовательно, самого по себе TabStrip недостаточно, чтобы обеспечить вывод нужной страницы при щелчке по закладке. Для этого необходим еще один элемент управления, являющийся контейнером. Лучше всего создать по отдельному контейнеру для каждого объекта Tab и написать код, который будет выводить и убирать эти контейнеры в зависимости от того, по какой закладке щелкнул пользователь. По размеру они должны соответствовать внутренней области TabStrip. Пользовательская форма во время разработки может при таком подходе выглядеть, например, следующим образом:
Private Sub UserForm_Initialize() ' Размещение первой рамки на пользовательской форме frmOne.Left = tbsODE.ClientLeft frmOne.Top = tbsODE.ClientTop frmOne.Width = tbsODE.ClientWidth frmOne.Height = tbsODE.ClientHeight ' Размещение второй рамки на пользовательской форме frmTwo.Left = tbsODE.ClientLeft frmTwo.Top = tbsODE.ClientTop frmTwo.Width = tbsODE.ClientWidth frmTwo.Height = tbsODE.ClientHeight ' Пусть первая рамка будет видимой, а вторая - невидимой frmOne.Visible = True frmTwo.Visible = False End Sub Для установления соответствия между контейнерами и закладками можно использовать свойство SelectedItem и событие Click: Private Sub tbsODE_Click() ' Выбор на основании вкладки, которую щелкнул пользователь Select Case tbsODE.SelectedItem.Index Case 1 ' Первая рамка является видимой, а вторая - невидимой frmOne.Visible = True frmTwo.Visible = False Case 2 ' Вторая рамка является видимой, а первая - невидимой frmOne.Visible = False frmTwo.Visible = True End Select End Sub Примечание 1. Именно этот способ следует применять при группировке элементов управления внутри контейнера. При использовании метода ZOrder, предназначенного для выведения рамки на передний план, объекты, активизирующиеся при нажатии на клавиатуре комбинации Примечание 2. Каждую группу переключателей (OptionButton) необходимо поместить в отдельный контейнер; все группы переключателей внутри одного контейнера будут вести себя как одна большая группа. Альтернативы TabStripВ состав MS Office входит библиотека Microsoft Forms 2.0, содержащая элементы управления TabStrip ("Набор вкладок") и MultiPage ("Набор страниц"). Этими компонентами можно пользоваться не только в ODE, не и в стандартной версии Office. TabStrip из Microsoft Forms 2.0 очень похож на описываемый нами элемент управления ActiveX (он содержится в файле ComCtl32.ocx), но наборы поддерживаемых свойств, методов и событий у них несколько различаются (в частности, TabStrip из Forms 2.0 не поддерживает ряд событий OLE). Следует также иметь в виду, что в TabStrip из ComCtl32.ocx нумерация закладок начинается с единицы, а в TabStrip из Forms 2.0 -- с нуля. Чтобы заменить в нашем примере элемент управления на Forms 2.0 TabStrip, потребуется вставить параметр в событие Click и увеличить на единицу значения индексов в операторе Select Case). С элементом управления MultiPage работать очень удобно: каждая его страница представляет собой отдельный контейнер, так что программист не должен создавать свои собственные контейнеры и организовывать работу с ними. Если, например, добавив MultiPage к пользовательской форме, поместить на одну из его страниц кнопку, кнопка будет перемещаться вместе с MultiPage и исчезнет при "закрытии" этой страницы. Пример использования TabStripДанный пример использования TabStrip относится к Microsoft Excel. Откройте в Excel редактор Visual Basic, добавьте к пользовательской форме элемент управления Microsoft TabStrip Control, version 5.0, после чего выполните следующие шаги:
Просмотров: 12027
|