Creates a list box that displays a list of items that you can select one or more items from. A list box is similar to a combo box; however, a combo box initially displays a single item. For more information about combo boxes, see ComboBox Control.
For more information about creating ListBox controls, see Form Designer and Using Controls.
ListBox |
Remarks
The following table lists properties commonly set at design time.
Property | Description |
---|---|
Determines the number of columns in the list. |
|
Specifies where to store the value that the user chooses from the list. |
|
Specifies whether to display mover bars to the left of the items in the list so that a user can rearrange the item order. |
|
Specifies whether the user can select more than one item in the list. |
|
Specifies the source of the values displayed in the list. |
|
Specifies the type of the source of the values displayed in the list. |
The following table lists methods commonly used.
Method | Description |
---|---|
Adds an item to the list when RowSourceType is set to 0. |
|
Removes an item from the list when RowSourceType is set to 0. |
|
Updates the list if the values in the source specified by RowSource have changed. |
The backslash ("\") is treated as a special character when used in the expression for an item. The following rules apply for this character:
-
You can disable an item in a list box or combo box by adding a single backslash to the beginning of the expression.
-
Any multiple of two backslashes used in the expression is displayed as a single backslash. For example, one or two backslashes used together will display as one, and three or four backslashes together will display as two. The following example code contains a list box item containing a Universal Naming Convention (UNC) path. The code would display in the list box as
\\MyServer\MyMachine\MyFolder
.
В Copy Code MyForm.List1.AddItem("\\\\MyServer\\MyMachine\\MyFolder")
-
If the expression begins with multiple backslashes, the item is not disabled. If you want to disable an item that begins with multiple backslashes, add a backslash and a close bracket (]) to the beginning of the item. For example, the following would disable the UNC path item in the list box:
В Copy Code MyForm.List1.AddItem("\]\\\MyServer\\MyMachine\\MyFolder")
-
To include a separator line, use a backslash followed by a hyphen as the item to add to the list box. For example, the following code adds a separator line to a list box:
В Copy Code MyForm.List1.AddItem("\-")
You can also use an ActiveX control that adds extra characteristics, such as a CheckBox, to the ListView or TreeView controls.
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).
В | Copy Code |
---|---|
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 |