Программирование под ОС / Basic /
| |
| | |
MSFlexGrid
Введение
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 |
Выделение будет видно, только если
фокус находится на контроле. |
Последние статьи: Программирование под ОС / Basic /
| |
| | |
Умение обращаться с файлами данных - чуть ли не одна из самых важных ступений в обучении программированию на Visual Basic! Здесь я постараюсь выложить только самые основные приёмы работы с объектом Data... подробнее
|
Кол. просмотров: общее - 3870 сегодня - 2
|
|
В статье рассматриваются способы повышения эффективности при разработке клиент-серверных СУБД-приложений в среде VisualBasic 6.0. Наиболее подробно освещены следующие аспекты проблемы... подробнее
|
Кол. просмотров: общее - 4759 сегодня - 3
|
|
В данной статье будет показан способ написания программы для вывода случайного числа в заданном нами интервале чисел, также пошагово будет показано создание соответствующего интерфейса программы на VB6... подробнее
|
Кол. просмотров: общее - 4416 сегодня - 1
|
|
Mногие из Вас наверняка видели в Windows программах окна нестандартной формы (круглые, треугольные и т.д.) и задавали себе вопрос: как мне сделать такое окно?... подробнее
|
Кол. просмотров: общее - 4186 сегодня - 2
|
|
Вы читали мою первую статью на эту тему? Надеюсь, что нет. Она мне страшно не нравилась уже сразу после опубликования. К тому же, я получил немало откликов на тему мало информации, которые, конечно, считаю справедливыми... подробнее
|
Кол. просмотров: общее - 4181 сегодня - 1
|
|
|