Массив символьных строк, используемый для доступа к элементам списка ComboBox или ListBox. Недоступно на этапе разработки; чтение/запись на этапе выполнения.

Control.List(nRow [, nCol]])[ = cChar]

Expand imageВозвращаемое значение

nRow

Задает строку элемента, который следует получить используется порядок, действующий на экране. Например, значение nRow = 3 задает третью строку, показанную в списке.

nCol

Задает столбец элемента, который следует получить используется порядок, действующий на экране. Например, значени nCol = 2 задает второй столбец, показанный в списке. Если значение nCol не задано, свойство List по умолчанию извлекает первый столбец. Аргумент nCol следует задавать только для элементов управления ComboBox и ListBox содержащих более одного столбца.

cChar

Задает значение добавляемое в элементов управления ComboBox или ListBox.

Expand imageПримечания

Свойство List действует совместно со свойством ListCount; задавая в качестве номеров числа от 1 до ListCount можно получить все элементы списка.

В свойстве List нельзя использовать функции обработки массивов. Впрочем, если вы установили для свойства RowSourceType значение 5 (массив) и задали в свойстве RowSource массив элементов, предназначенных для помещения в список, вы можете применять функции обработки массива к массиву, заданному в свойстве RowSource.

NoteNote

Когда значение свойства RowSourceType равно 0 или 1, для добавления элементов в список ComboBox или ListBox можно использовать метод AddItem. Чтобы удалять элементы, используйте мето RemoveItem. Чтобы организовать элементы в алфавитном порядке, нужно, прежде чем добавлять в список новые элементы, установить свойство Sorted данного элемента управления равным значению "истина" (.T.).

Expand imageПример

Применимо к: ComboBox Control | ListBox Control

В следующем примере свойство, ListCount используется для организации цикла по всем элементам, заданным свойством List элемента управления ComboBox или ListBox.

В этом примере создается элемент управления ListBox. Источником элементов, фигурирующих в качестве элементов списка ListBox, служит массив; он задается с помощью свойств RowSourceType и RowSource.

Свойство MultiSelect элемента управления ListBox устанавливается равным "истине" (.T.), что позволяет выбирать элементы в этом списке группами. Внутри цикла FOR ... ENDFOR используется свойство ListCount для отображения элемента (элементов), выбранного в ListBox. Свойство Selected используется для определения выбранных элементов, а свойство List - для возвращения этих элементов.

  CopyCode imageCopy Code
CLEAR

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

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

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

* Add "Quit" command button and list box control
frmMyForm.AddObject('cmbCommand1','cmdMyCmdBtn')
frmMyForm.AddObject('lstListBox1','lstMyListBox')

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

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

Expand imageСмотрите также