Share via


ListBox Control Properties, Methods, and Events

Properties

Application BaseClass BorderColor
BoundColumn BoundTo Class
ClassLibrary ColorScheme ColorSource
ColumnCount ColumnLines ColumnWidths
Comment ControlSource DisabledBackColor
DisabledForeColor DisabledItemBackColor DisabledItemForeColor
DisplayValue DragIcon DragMode
Enabled FirstElement FontBold
FontCharSet FontCondense FontExtend
FontItalic FontName FontOutline
FontShadow FontSize FontStrikeThru
FontUnderLine Height HelpContextID
IncrementalSearch IntegralHeight ItemBackColor
ItemData ItemForeColor ItemIDData
ItemTips Left List
ListCount ListIndex ListItem
ListItemID MouseIcon MousePointer
MoverBars MultiSelect Name
NewIndex NewItemID NullDisplay
NumberOfElements OLEDragMode OLEDragPicture
OLEDropEffects OLEDropHasData Property OLEDropMode
Parent ParentClass Picture
RightToLeft RowSource RowSourceType
Selected SelectedID SelectedItemBackColor
SelectedItemForeColor Sorted SpecialEffect
StatusBarText TabIndex TabStop
Tag TerminateRead Themes
ToolTipText Top TopIndex
TopItemID Value Visible
WhatsThisHelpID Width  

Methods

AddItem AddListItem AddProperty
Clear CloneObject Drag
IndexToItemID ItemIDToIndex Move
MoveItem OLEDrag ReadExpression
ReadMethod Refresh RemoveItem
RemoveListItem Requery ResetToDefault
SaveAsClass SetFocus WriteExpression
WriteMethod ZOrder  

Events

Click DblClick Destroy
DragDrop DragOver Error
ErrorMessage GotFocus Init
InteractiveChange KeyPress LostFocus
Message MiddleClick Event MouseDown
MouseEnter MouseLeave MouseMove
MouseUp MouseWheel OLECompleteDrag
OLEDragDrop OLEDragOver OLEGiveFeedBack
OLESetData OLEStartDrag OnMoveItem
ProgrammaticChange RangeHigh RangeLow
RightClick UIEnable Valid
When    

Example

The following example creates a ListBox control. The source of the items that appear in the list box is an array specified with the RowSourceType and RowSource properties.

The MultiSelect property for the list box is set to true (.T.), allowing you to make multiple selections from the list. The item or items you choose are displayed by using the ListCount, Selected, and List properties (which determine the number of items in the list and the items you chose).

CLEAR

DIMENSION gaMyListArray(10)
FOR gnCount = 1 to 10  && Fill the array with letters
   STORE REPLICATE(CHR(gnCount+64),6) TO gaMyListArray(gnCount)
NEXT   

frmMyForm = CREATEOBJECT('Form')  && Create a Form
frmMyForm.Closable = .f.  && Disable the Control menu box

frmMyForm.Move(150,10)  && Move the form

frmMyForm.AddObject('cmbCommand1','cmdMyCmdBtn')  && Add "Quit" Command button
frmMyForm.AddObject('lstListBox1','lstMyListBox')  && Add ListBox control

frmMyForm.lstListBox1.RowSourceType = 5  && Specifies an array
frmMyForm.lstListBox1.RowSource = 'gaMyListArray' && Array containing listbox items

frmMyForm.cmbCommand1.Visible =.T.  && "Quit" Command button visible
frmMyForm.lstListBox1.Visible =.T.  && "List Box visible

frmMyForm.SHOW  && Display the form
READ EVENTS  && Start event processing

DEFINE CLASS cmdMyCmdBtn AS CommandButton  && Create Command button
   Caption = '\<Quit'  && Caption on the Command button
   Cancel = .T.  && Default Cancel Command button (Esc)
   Left = 125  && Command button column
   Top = 210  && Command button row
   Height = 25  && Command button height

   PROCEDURE Click
      CLEAR EVENTS  && Stop event processing, close Form
      CLEAR  && Clear main Visual FoxPro window
ENDDEFINE

DEFINE CLASS lstMyListBox AS ListBox  && Create ListBox control
   Left = 10  && List Box column
   Top = 10  && List Box row
   MultiSelect = .T.  && Allow selecting more than 1 item

PROCEDURE Click
   ACTIVATE SCREEN
   CLEAR
   ? "Selected items:"
   ? "---------------"
   FOR nCnt = 1 TO ThisForm.lstListBox1.ListCount
      IF ThisForm.lstListBox1.Selected(nCnt)  && Is item selected?
         ? SPACE(5) + ThisForm.lstListBox1.List(nCnt) && Show item
      ENDIF
   ENDFOR

ENDDEFINE

See Also

ListBox Control | ListCount Property | Form Designer | Using Controls