Хотя по умолчанию число колонок в listbox равно одной, listbox в Visual FoxPro может содержать столько колонок, сколько вам требуется. Многоколонный listbox отличается от элемента управления класса grid тем, что вы выбираете целую строку в многоколонном listbox, тогда как в grid вы можете выбрать индивидуальную ячейку и, кроме того, данные в списке не могут редактироваться непосредственно.

Для отображения множества колонок в listbox

  1. Установите свойство ColumnCount в желаемое число колонок.

  2. Установите свойство ColumnWidths. Например, если вы определили для listbox три колонки, то приведенная ниже команда установит их ширину равной соответственно 10, 15 и 30:

     CopyCode imageСкопировать код
    THISFORM.listbox.ColumnWidths = "10, 15, 30"
  3. Установите свойство RowSourceType в значение 6 - Fields.

  4. Установите свойство RowSource в имена полей, которые будут отображены в колонках.

    NoteЗамечание

    Для корректного выравнивания колонок, вам необходимо либо установить значение свойства ColumnWidths или изменить значение свойства FontName в моноширинный шрифт (например, в Courier). Свойство FirstElement для элементов управления ListBox и ComboBox игнорируется для многоколонных списков.

Когда свойство RowSourceType списка установлено в 0 - None (Не определено), вы можете использовать метод AddListItem для ввода элементов в многоколонный listbox. Например, приведенный ниже пример кода добавляет текст в конкретную колонку в listbox:

 CopyCode imageСкопировать код
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)

Смотрите также