Although the default number of columns in a list box is one, a list box in Visual FoxPro can contain as many columns as you want. A multicolumn list box differs from a grid in that you select a row at a time in a multicolumn list box while you can select individual cells in a grid, and data in the list cannot be directly edited.
To display multiple columns in a list box
-
Set the ColumnCount property to the number of desired columns.
-
Set the ColumnWidths Property. For example, if there are three columns in the list box, the following command would set the column widths to 10, 15, and 30, respectively:
В Copy Code THISFORM.listbox.ColumnWidths = "10, 15, 30"
-
Set the RowSourceType Property to 6 - Fields
.
-
Set the RowSource Property to the fields to be displayed in the columns.
Note: For the columns to align correctly, you need to either set the ColumnWidths property or change the FontName Property to a monospaced font. The FirstElement Property of ListBoxes and ComboBoxes is not effective in multi-column lists.
When the RowSourceType of the list is set to 0 - None, you can use the AddListItem method to add items to a multicolumn list box. For example, the following code adds text to specific columns in a list box:
В | Copy Code |
---|---|
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) |