MSFlexGrid

Павло Сурменок

Введення

контрол використовується для виведення табличних
даних. Про це контролі піде мова в цій статті. Контрол
допускає форматування тексту всередині осередків і
вставка в таблицю картинок. Можлива зв'язок контрола з базою
даних. Для підключення контрола до проекту відкрийте
меню Project | Components і відзначте пункт "Microsoft FlexGrid
control”.

Доступ до вмісту клітинок

Кількість рядків і колонок вказується властивостями,
відповідно, Rows і Cols. Відлік рядків і колонок починається
з 0. Поточну рядок вказує властивість Row, а поточну колонку
властивість Col.

 Debug.Print "Всього рядків" & .Rows
Debug.Print "Всього колонок" & .Cols
Debug.Print "Поточна рядок" & .Row
Debug.Print "Поточна колонка" & .Col

Доступ до вмісту поточної комірки (яка виділена
користувачем) здійснюється через властивість Text.

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

Для доступу до вмісту довільної комірки
використовується властивість TextArray. Воно має один параметр –
Index. Це індекс осередку, вміст якої потрібно змінити
або отримати. Він обчислюється таким чином. До номером
стовпця клітинки додається твір її номера рядка на
кількість колонок, що визначається властивістю Cols. Для розрахунку
індексу осередку зручно використовувати цю функцію:

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

Також можна додавати рядки з допомогою методу AddItem.

.AddItem "Рядок"

Роздільником колонок служить vbTab.

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

Видаляти рядки можна, використовуючи метод RemoveItem. Перший
параметр – index вказує, який рядок потрібно видалити. Для
першого рядка index = 0.

.RemoveItem 2

Форматування тексту

В осередках може міститися текст, зображення, а може і
те й інше. У можливо форматування тексту:
виділення курсивом, підкресленням, напівжирним, зміною
кольору фону і тексту, вирівнювання тексту, зміна шрифту і
розміру шрифту, стиль тексту та ін Властивості, службовці для
форматування тексту осередків представлені в таблиці.


























































Властивість Тип даних Значення за замовчуванням Опис
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 .CellPicture = LoadPicture ("C: \ Windows \ Облака.bmp")
Set .CellPicture = Image1.Picture

Зображення можна вирівнювати. Для цього служить
властивість CellPictureAlignment. Воно може приймати значення
однієї з наступних констант:

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

Що означають ці константи, думаю, зрозуміло з їх назви.

Заголовки рядків і колонок

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

Dim s As String
s = “<ID|Name|Email|Order”
.FormatString = s

Заголовки рядків визначаються схожим чином:

Dim s As String
s = "; Перший | Другий | Третій | Четвертий"
.FormatString = s

Колір фону всіх заголовків можна встановити властивістю
BackColorFixed. Колір шрифту заголовків визначає властивість
ForeColorFixed. Заголовок – це група комірок, так що до нього
застосовувати усі ті ж способи форматування вмісту, що і
для інших осередків.

Ширина, висота рядків і колонок

Ширина колонок встановлюється властивістю ColWidth.
Єдиний параметр index вказує індекс колонки, ширину
якої отримуємо або встановлюємо. Властивість має тип Long і
встановлюється в твіп.

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

Висота колонок визначається властивістю RowHeight, також
мають тип Long і вимірюються в твіп. В якості параметра
задається індекс рядка.

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

Також можна встановити мінімальну висоту рядків. Це
робиться за допомогою властивості RowHeightMin. Користувач і сам
може змінювати висоту рядків і ширину колонок. Але для цього
потрібно встановити відповідне значення властивості
AllowUserResizing. Це властивість має тип
AllowUserResizeSettings і може приймати значення однієї з
наступних констант:























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

Властивості, що визначають зовнішній вигляд контрола

У досить гнучко регулюється зовнішній вигляд.
Дуже багато властивостей, що визначають кольори різних елементів
контрола. Всі вони мають тип 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 Виділення буде видно, тільки якщо
фокус знаходиться на контролі.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*