Хотя по умолчанию число колонок в listbox равно одной, listbox в Visual FoxPro может содержать столько колонок, сколько вам требуется. Многоколонный listbox отличается от элемента управления класса grid тем, что вы выбираете целую строку в многоколонном listbox, тогда как в grid вы можете выбрать индивидуальную ячейку и, кроме того, данные в списке не могут редактироваться непосредственно.
Для отображения множества колонок в listbox
-
Установите свойство ColumnCount в желаемое число колонок.
-
Установите свойство ColumnWidths. Например, если вы определили для listbox три колонки, то приведенная ниже команда установит их ширину равной соответственно 10, 15 и 30:
Скопировать код
THISFORM.listbox.ColumnWidths = "10, 15, 30"
-
Установите свойство RowSourceType в значение 6 - Fields
.
-
Установите свойство RowSource в имена полей, которые будут отображены в колонках.
Замечание
Для корректного выравнивания колонок, вам необходимо либо установить значение свойства ColumnWidths или изменить значение свойства FontName в моноширинный шрифт (например, в Courier). Свойство FirstElement для элементов управления ListBox и ComboBox игнорируется для многоколонных списков.
Когда свойство RowSourceType списка установлено в 0 - None (Не определено), вы можете использовать метод AddListItem для ввода элементов в многоколонный listbox. Например, приведенный ниже пример кода добавляет текст в конкретную колонку в listbox:
![]() | |
---|---|
THISFORM.lst1.ColumnCount = 3 THISFORM.lst1.Columnwidths = "100,100,100" THISFORM.lst1.AddListItem("row1 col1", 1,1) THISFORM.lst1.AddListItem("row1 col2", 1,2) THISFORM.lst1.AddListItem("row1 col3", 1,3) THISFORM.lst1.AddListItem("row2 col2", 2,2) |