A list control gives the user a list of string items to choose from.
 There are two built-in classes that implement
 
list-control<%>:
choice% — presents the list in a popup menu (so
the user can choose only one item at a time)
list-box% — presents the list in a scrolling box,
allowing the use to choose one item (if the style includes
'single) or any number of items
In either case, the set of user-selectable items can be changed
 dynamically.
Adds a new item to the list of user-selectable items. The current
 selection is unchanged (unless the list control is an empty choice
 control, in which case the new item is selected).
Removes all user-selectable items from the control.
Finds a user-selectable item matching the given string. If no matching
 choice is found, #f is returned, otherwise the index of the
 matching choice is returned (items are indexed from 0).
Returns the number of user-selectable items in the control (which is
 also one more than the greatest index in the list control).
Returns the index of the currently selected item (items are indexed
 from 0). If the choice item currently contains no choices or no
 selections, #f is returned.  If multiple selections are
 allowed and multiple items are selected, the index of the first
 selection is returned.
Returns the item for the given index (items are indexed from
 
0). If the provided index is larger than the greatest index in
 the list control, an 
exn:fail:contract exception is raised.
Returns the currently selected item.  If the control currently
 contains no choices, #f is returned. If multiple selections
 are allowed and multiple items are selected, the first selection is
 returned.
Selects the item specified by the given index (items are indexed from
 
0). If the given index larger than the greatest index in the
 list control, an 
exn:fail:contract exception is raised.
In a list box control, all other items are deselected, even if multiple
 selections are allowed in the control. See also
select in list-box%.
The control’s callback procedure is not invoked when this method
is called.
The list control’s selection can be changed
by the user clicking the control, and such changes do not go through this method; use the control callback procedure (provided as an initialization argument) to
monitor selection changes.
Selects the item that matches the given string.  If no match
 is found in the list control, an 
exn:fail:contract exception is raised.
In a list box control, all other items are deselected, even if multiple
 selections are allowed in the control. See also
select in list-box%.
The control’s callback procedure is not invoked when this method
is called.
The list control’s selection can be changed
by the user clicking the control, and such changes do not go through this method; use the control callback procedure (provided as an initialization argument) to
monitor selection changes.