Rambler's Top100
Российский фонд помощи
Навигация
Главная
MS ACCESS
VB
ASP
PHP
Наши друзья
Поиск
Форум
Лента новостей
Новый сайт

Online
Рассылки Subscribe.Ru
Работа с MS Access
Подписаться письмом
Реклама на сайте
 
Главная arrow VB arrow Microsoft FlexGrid
Microsoft FlexGrid Печать E-mail
Автор Павел Сурменок   
18.11.2001 г.
Элемент Microsoft FlexGrid используется для вывода табличных данных. Также он позволяет форматировать текст, добавлять изображения и создавать связь с базой данных. » Введение

MSFlexGrid контрол используется для вывода табличных данных. Об этом контроле пойдёт речь в этой статье. Контрол MSFlexGrid допускает форматирование текста внутри ячеек и вставка в таблицу картинок. Возможна связь контрола с базой данных. Для подключения контрола MSFlexGrid к проекту откройте меню Project|Components и отметьте пункт “Microsoft FlexGrid control”.

» Доступ к содержимому ячеек

Количество строк и колонок указывается свойствами, соответственно, Rows и Cols. Отсчёт строк и колонок начинается с 0. Текущую строку указывает свойство Row, а текущую колонку свойство Col.

Debug.Print "Всего строк " & MSFlexGrid.Rows
Debug.Print "Всего колонок " & MSFlexGrid.Cols
Debug.Print "Текущая строка " & MSFlexGrid.Row
Debug.Print "Текущая колонка " & MSFlexGrid.Col


Доступ к содержимому текущей ячейки (которая выделена пользователем) осуществляется через свойство Text.

Debug.Print MSFlexGrid.Text
MSFlexGrid.Text = "Привет!"


Для доступа к содержимому произвольной ячейки используется свойство TextArray. Оно имеет один параметр - Index. Это индекс ячейки, содержимое которой нужно изменить или получить. Он вычисляется следующим образом. К номеру столбца ячейки прибавляется произведение ее номера строки на количество колонок, определяемое свойством Cols. Для расчёта индекса ячейки удобно использовать эту функцию:

Function GetCellIndex (MSFlexGrid As MSFlexGrid, row As Integer, col As Integer)
GetCellIndex = row * MSFlexGrid.Cols + col
End Function


Также можно добавлять строки с помощью метода AddItem.

MSFlexGrid.AddItem "Строка"

Разделителем колонок служит vbTab.

MSFlexGrid.AddItem "Строка1" & vbTab & "Строка2" & vbTab & "Строка3"

Удалять строки можно, используя метод RemoveItem. Первый параметр - index указывает, какую строку нужно удалить. Для первой строки index = 0.

MSFlexGrid.RemoveItem 2

» Форматирование текста

В ячейках может содержаться текст, изображение, а может и то и другое. В MSFlexGrid возможно форматирование текста: выделение курсивом, подчёркиванием, полужирным, изменением цвета фона и текста, выравнивание текста, изменение шрифта и размера шрифта, стиль текста и др.
Свойства, служащие для форматирования текста ячеек представлены в таблице.


Свойство Тип данных  Значение по умолчанию Описание
CellAlignment Integer 0 Выравнивание содержимого ячейки.
CellBackColor OLE_Color 0 Цвет фона ячейки.
CellFontBold Boolean False Задаёт жирное начертание.
CellFontItalic Boolean False Задаёт начертание курсивом.
CellFontName String MS Sans Serif Название шрифта.
CellFontSize Single 8,25 Размер шрифта.
CellFontStrikeThrough Boolean False Задаёт перечёркнутое начертание.
CellFontUnderline Boolean False Задает подчеркнутое начертание.
CellFontWidth Single 0 Ширина шрифта в точках.
CellFontColor OLE_Color 0 Цвет шрифта ячейки.

 

Все эти свойства не доступны в Design time. Свойства применяются к текущей ячейке.
Свойство CellAlignment может принимать значение одной из констант:

 

Константа Значение Описание
flexAlignLeftTop 0 Слева сверху.
flexAlignLeftCenter 1 Слева в центре. Это значение по умолчанию для ячеек, содержащих текст.
flexAlignLeftBottom 2 Слева снизу.
flexAlignCenterTop 3 В центре сверху.
flexAlignCenterCenter 4 В центре ячейки.
flexAlignCenterBottom 5 В центре снизу.
flexAlignRightTop 6 Справа сверху.
flexAlignRightCenter 7 Справа в центре. Это значение по умолчанию для ячеек, содержащих числа.
flexAlignRightBottom 8 Справа снизу.
flexAlignGeneral 9 Общее выравнивание. Слева в центре, если ячейка содержит текст и справа в центре, если ячейка содержит число.

 

» Вставка изображения в ячейку

В ячейку можно вставлять изображения. Для этого служит свойство CellPicture типа Picture. Можно вставлять изображения любого типа, с которыми умеет работать VB. Это Bitmap (bmp), Icon (ico), Windows Metafile (wmf), JPEG (jpg) и GIF (gif). Если вставить анимированное GIF изображение, то показывается только первый кадр. Изображение можно загрузить из файла, используя функцию LoadPicture или из другого объекта, например Picture или Image.

Set MSFlexGrid.CellPicture = LoadPicture ("C:\Windows\Облака.bmp")
Set MSFlexGrid.CellPicture = Image1.Picture


Изображение также можно выравнивать. Для этого служит свойство CellPictureAlignment. Оно может принимать значение одной из следующих констант:

flexAlignLeftTop = 0
flexAlignLeftCenter = 1
flexAlignLeftBottom = 2
flexAlignCenterTop = 3
flexAlignCenterCenter = 4
flexAlignCenterBottom = 5
flexAlignRightTop = 6
flexAlignRightCenter = 7
flexAlignRightBottom = 8


Что означают эти константы, думаю, понятно из их названия.

» Заголовки строк и колонок

Заголовки строк и колонок в MSFlexGrid представляют собой нескроллируемую строку/колонку. Наличие заголовков строк и колонок устанавливается свойствами FixedRows и FixedCols соответственно.
Содержимое заголовков определяется свойством FormatString. Следующий пример показывает, как установить заголовки колонок:

Dim s As String
s = " MSFlexGrid.FormatString = s


Заголовки строк определяются похожим образом:

Dim s As String
s = ";Первый|Второй|Третий|Четвёртый"
MSFlexGrid.FormatString = s


Цвет фона всех заголовков можно установить свойством BackColorFixed. Цвет шрифта заголовков определяет свойство ForeColorFixed.
Заголовок - это группа ячеек, так что к нему применимы все те же способы форматирования содержимого, что и для других ячеек.

» Ширина, высота строк и колонок

Ширина колонок устанавливается свойством ColWidth. Единственный параметр index указывает индекс колонки, ширину которой получаем или устанавливаем. Свойство имеет тип Long и устанавливается в твипах.

MsgBox MSFlexGrid.ColWidth (2)
MSFlexGrid.ColWidth (2) = 1500


Высота колонок определяется свойством RowHeight, также имеющим тип Long и измеряющимся в твипах. В качестве параметра задаётся индекс строки.

MsgBox MSFlexGrid.RowHeight (34)
MSFlexGrid.RowHeight (34) = 200


Также можно установить минимальную высоту строк. Это делается с помощью свойства RowHeightMin.
Пользователь и сам может изменять высоту строк и ширину колонок. Но для этого нужно установить соответствующее значение свойства AllowUserResizing. Это свойство имеет тип AllowUserResizeSettings и может принимать значение одной из следующих констант:


Константа Значение Описание
flexResizeNone 0 Пользователь не может изменять ни высоту строк, ни ширину колонок. Это значение устанавливается по умолчанию.
flexResizeColumns 1 Пользователь может изменять только ширину колонок.
flexResizeRows 2 Пользователь может изменять только высоту строк.
flexResizeBoth 3 Пользователь может изменять и высоту строк, и ширину колонок.

 

» Свойства, определяющие внешний вид контрола

В MSFlexGrid достаточно гибко регулируется внешний вид. Очень много свойств, определяющих цвета разных элементов контрола. Все они имеют тип OLE_Color. Они перечислены в этой таблице:

 

Свойство Значение по умолчанию Описание
BackColor &H80000005& Цвет фона части контрола, занятой данными (все ячейки).
BackColorBkg &H00808080& Цвет остальной части контрола.
BackColorFixed &H8000000F& Цвет фона заголовков.
BackColorSel &H8000000D& Цвет выделения.
ForeColor &H80000008& Цвет шрифта.
ForeColorFixed &H80000012& Цвет шрифта заголовков.
ForeColorSel &H8000000E& Цвет шрифта выделенной части.
GridColor &H00C0C0C0& Цвет линий, разделяющих ячейки.
GridColorFixed &H00000000& Цвет линий, разделяющих ячейки заголовка.

 

Другие свойства, определяющие вид контрола:

 

Свойство Тип данных Значение по умолчанию Описание
Appearance AppearanceSettings flex3D Наличие 3D эффектов.
BorderStyle BorderStyleSettings flexBorderSingle Наличие окантовки.
GridLines GridLineSettings flexGridFlat Тип линий, разделяющих ячейки.
GridLinesFixed GridLineSettings flexGridInset Тип линий, разделяющих ячейки заголовка.
GridLineWidth Integer 1 Толщина линий.
HighLight HighLightSettings flexHighlightAlways Определяет, при каких условиях будет видно выделение ячеек цветом.
ScrollBars ScrollBarsSettings flexScrollBarBoth Наличие вертикальных и горизонтальных полос прокрутки.
TextStyle TextStyleSettings flexTextFlat Стиль текста.
TextStyleFixed TextStyleSettings flexTextFlat Стиль текста в заголовке.

 

Свойство GridLines и GridLinesFixed могут принимать значения одной из констант:

 

Константа Значение Описание
flexGridNone 0 Нет линий.
flexGridFlat 1 Обычные 2D линии.
flexGridInset 2 Вдавленные линии.
flexGridRaised 3 Приподнятые линии.

 

Свойство HighLight может принимать значение одной из следующих констант:

 

Константа Значение Описание
flexHighlightNever 0 Выделение ячеек не будет видно.
flexHighlightAlways 1 Выделение ячеек видно всегда.
flexHighLightWithFocus 2 Выделение будет видно, только если фокус находится на контроле.

 

Пример можно скачать здесь.

 
Реклама на сайте
HiProg.com - Технологии программирования
Rambler's Top100 TopList