Элемент управления StatusBar (строка состояния) - это горизонтальная полоса, расположенная обычно внизу родительской формы, в которой выводится разнообразная информация о состоянии программы. В сочетании с ToolBar и другими элементами управления она дает вам средства для создания экономичного и вместе тем полноценного пользовательского интерфейса.
Публикуется с разрешения авторов. (С) Андрей Колесов, Ольга Павлова Вперые опубликовано в электронной версии журнала "Мир ПК" N 3/99 | | Элемент управления StatusBar (строка состояния) - это горизонтальная полоса, расположенная обычно внизу родительской формы, в которой выводится разнообразная информация о состоянии программы. В сочетании с ToolBar и другими элементами управления она дает вам средства для создания экономичного и вместе тем полноценного пользовательского интерфейса. Некоторые варианты использования - вывод различных характеристик таблицы в базе данных (таких, как число записей) и информации о ее текущем местонахождении;
- вывод текущих параметров форматирования текста в элементе управления RichTextBox;
- вывод информации о состоянии определенных клавиш, таких как CAPS LOCK или NUM LOCK.
Панели Строка состояния может быть разделена на несколько панелей -- объектов Panel, содержащихся в коллекции Panels; максимальное их число равно 16. Панели позволяют выводить различные сочетания текстовой и графической информации. Их внешний вид определяется свойствами Width (длина), Alignment (способ выравнивания содержимого) и Bevel (величина скоса). Свойство Style, имеющее семь различных значений, позволяет автоматически выводить в панелях типовую информацию, такую как дата, время, статус определенных клавиш. Панели создаются и настраиваются при разработке программы (для этого служит страница Panel окна свойств StatusBar) и допускают переконфигурирование во время ее выполнения. Более подробную информацию о свойствах, событиях и методах объектов Panel можно найти в разделах "Panel Object" и "Panels Collection" справки Visual Basic. Управление панелями во время выполнения программы Для добавления к строке состояния новой панели во время работы программы следует объявить в программе объектную переменную типа Panel, а затем установить ее как объект Panel, созданный с помощью метода Add: ' Элемент управления StatusBar носит имя sbrDB Dim pnlX As Panel Set pnlX = sbrDB.Panels.Add() После этого можно задать для панели различные свойства: pnlX.Text = Text1.Text pnlX.Picture = LoadPicture("mapnet.bmp") pnlX.Key = "drive" StatusBar позволяет запрограммировать определенные действия в ответ на щелчок по заданной панели. При щелчке генерируется событие PanelClick, обрабатываемое при помощи оператора Select Case. Панели при этом идентифицируются по уникальному свойству Key, которое обязательно должно быть определено для всех панелей, реагирующих на щелчок: Private Sub sbrDB_PanelClick(ByVal Panel As Panel) Select Case Panel.Key Case "drive" Panel.Text = Text1.Text Case "openDB" Panel.Text = rsOpenDB.Name Case Else ' Обрабатываются другие случаи End Select End Sub Внешний вид панелей Для управления внешним видом панелей служат свойства Bevel (скос), AutoSize (автоматическое регулирование длины при изменении размера строки состояния) и Alignment (выравнивание содержимого). Их значения описываются в приводимой ниже таблице. Bevel | Константа | Значение | Описание | sbrNoBevel | 0 | У панели нет скоса, и кажется, что текст находится прямо на строке состояния. | sbrInset | 1 | Панель кажется вдавленной в строку состояния. | sbrRaised | 2 | Панель кажется приподнятой над строкой состояния. | AutoSize | Константа | Значение | Описание | sbrNoAutoSize | 0 | Не происходит никакого автоматического изменения размеров. Панель всегда имеет одну и ту же длину, заданную с помощью свойства Width. | sbrSpring | 1 | При изменении размеров родительской формы все панели пропорционально удлиняются или укорачиваются так, чтобы строка состояния заполнилась целиком; однако длина панелей никогда не становятся короче минимальной, заданной с помощью свойства MinWidth. | sbrContents | 2 | Размеры панели изменяются в зависимости от ее содержимого. | Alignment | Константа | Значение | Описание | sbrLeft | 0 | Текст выровнен по левому краю и находится справа от изображения. | sbrCenter | 1 | Текст выровнен по центру и находится справа от изображения. | sbrRight | 2 | Текст выровнен по правому краю и находится слева от изображения. | Простая текстовая панель Если задать для свойства Style объекта StatusBar значение sbrSimple(1), строка состояния будет представлять собой одну чисто текстовую панель, распространяющуюся на всю длину строки. Подобные панели часто применяют для вывода сообщений в ходе длительных процессов - таких, как, например, обмен информацией с базой данных. Выводимый текст задается с помощью свойства SimpleText: Private Sub GetRecords(State) ' Запрос находит все записи, соответствующие параметру State. ' В то время, как данный запрос создает набор записей, выведите ' текст SimpleText на элементе управления StatusBar sbrDB.SimpleText = "Идет поиск записей..." ' Установите стиль Simple sbrDG.Style = sbrSimple ' Используйте метод Refresh, чтобы увидеть SimpleText Set rsNames = mDbBiblio.OpenRecordset _ ("select * from Names Where State= " & State) End Sub Пример использования StatusBar Для построения этого примера нам понадобится база данных Northwind, входящая в состав Office 97. Добавив к пользовательской форме элемент управления Microsoft StatusBar Control, version 5.0, выполните следующие шаги: - Поместите на ту же форму элементы управления CommandButton ("Кнопка") и TextBox ("Поле") и расположите все объекты так, как показано на рисунке.
- Установите значения свойств Name и Caption формы и элементов управления так, как показано в таблице:
Объект | Свойство | Значение | UserForm | Caption | Элемент управления StatusBar | StatusBar | Name | sbrODE | TextBox | Name | txtProduct | CommandButton | Name | cmdNextRecord | CommandButton | Caption | Следующая запись | - Чтобы обеспечить работу с базой данных Northwind, установите связь с объектной библиотекой DAO 3.5: выберите в меню Tools ("Сервис") команду References ("Ссылки") и в появившемся окне отметьте Microsoft DAO 3.5 Object Library.
- В окне кода введите следующий текст:
Public mdbNWind As Database Public rsProducts As Recordset Private Sub UserForm_Initialize() Dim pnlX As Panel Dim intCounter As Integer ' Добавление еще двух панелей к уже существующей For intCounter = 1 To 2 Set pnlX = sbrODE.Panels.Add() Next intCounter Call LoadStatusBar End Sub Sub LoadStatusBar() ' Открытие базы данных Northwind Set mdbNWind = DBEngine. _ OpenDatabase("c:program filesdevstudiovb wind.mdb") ' Открытие набора записей, содержащего три поля ' из таблицы Products Set rsProducts = mdbNWind.OpenRecordset _ ("SELECT Products.UnitPrice, Products.ProductName,Products.UnitsInStock FROM Products;") End Sub Private Sub cmdNextRecord_Click() ' Получение следующей записи rsProducts.MoveNext ' Добавление названия текущего продукта к полю текста txtProduct.Text = rsProducts!PRODUCTNAME ' Добавление текста в панели строки состояния sbrODE.Panels(1).Text = "Общее число записей " & _ rsProducts.RecordCount sbrODE.Panels(2).Text = "Номер записи = " & _ rsProducts.AbsolutePosition sbrODE.Panels(3).Text = "Процент = " & _ rsProducts.PercentPosition End Sub - Активизируйте пользовательскую форму, выбрав в меню View ("Вид") команду Object ("Объект"), и запустите пример на выполнение (см. рисунок).
Просмотров: 8251
Ваш коментарий будет первым | | |