MSFlexGrid, Basic, Програмування, статті

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

Введення

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 = “<ID|Name|Email|Order”
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 Виділення буде видно, тільки якщо фокус знаходиться на контролі.

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


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

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

Ваш отзыв

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

*

*