ListBox.AddExpandableRow

From Xojo Documentation

Method

ListBox.AddExpandableRow(text as String)

New in 2019r2

Supported for all project types and targets.

Appends text in a new row to the end of the list and adds disclosure triangle only if the Hierarchical property is set to True.

Notes

For multi-column ListBoxes, Item is always assigned to column zero. In the case of hierarchical ListBoxes, AddExpandableRow appends Item to the subitems of the expanded row when called in the ExpandRow event.

Sample Code

The following example adds creates a hierarchical ListBox. Note that AddExpandableRow must be called to create the hierarchical relationship.

Var s1, sub1 As String
Me.ColumnWidths = "150,0"
s1 = "Michigan,Ohio,Minnesota"
sub1 = "Grand Blanc,Bad Axe,Flint,Benton Harbor,"_
+ "Detroit;Cleveland,Columbus,Akron,Pleasantville;St. Paul,Frostbite Falls"
For i As Integer = 1 To s1.Split(",").Count
If NthField(sub1, ";", i) <> "" Then
Me.AddExpandableRow("")
Me.CellValueAt(i - 1, 1) = NthField(sub1, ";", i)
End If
Me.CellValueAt(i - 1, 0) = NthField(s1, ",", i)
Next
Me.ColumnCount = 1

See the section “Hierarchical Listboxes” in the Notes section for illustrations of the ListBox in expanded and collapsed states.

Volume Browser Example

The FileBrowser example project displays the file structure of the user's hard disks as a hierarchical ListBox using custom ListBox subclass. The Open event of the custom class builds the hierarchical list using AddExpandableRow in a For loop for all of the mounted volumes.

You can find this in the Examples folder: Examples/Files/FileBrowser