Создает список, который отображает список элементов, из которых Вы можете выбрать один или более элементов. Список подобен полю ввода со списком, однако, поле со списком первоначально отображает единственный элемент. Для подробной информации о полях со списком, см. Элемент управления ComboBox.

Для подробной информации о создании ListBox, см. Дизайнер форм и Использование элементов управления.

ListBox

Замечания

Следующая таблица перечисляет свойства, обычно устанавливаемые во времени разработки.

Свойство Описание

ColumnCount

определяет количество столбцов в списке.

ControlSource

определяет, где хранить значение, которое пользователь выбирает из списка.

MoverBars

Определяет, отображаются ли в элементе управления ListBox линейки прокрутки так, чтобы пользователь мог перестроить порядок элементов.

Multiselect

определяет, может ли пользователь выбрать больше чем один элемент в списке.

RowSource

определяет источник значений, отображенных в списке.

RowSourceType

определяет тип источника значений, отображенных в списке.

Следующая таблица перечисляет обычно используемые методы.

Метод Описание

AddItem

добавляет пункт в список, когда RowSourceType установлен на 0.

RemoveItem

удаляет элемент из списка, когда RowSourceType установлен на 0.

Requery

обновляет список, если значения в источнике, указанном RowSource изменились.

Наклонная черта влево ("\") обрабатывается как специальный символ, когда используется в выражении для элемент. Следующие правила применяется для этого символа:

  • Вы можете отключить выбор элемента в списке или поле со списком, добавляя единственную наклонную черту свлева в начале выражения.

  • Любое множество двух наклонных черт влево, используемых в выражении будет отображен как единственная наклонная черта влево. Например, одна или две наклонных черты влево, используемые вместе отобразятся как один, а три или четыре наклонных черты влево вместе отобразятся как два. Следующий код примера содержит элемент списка, содержит путь в Универсальном соглашение об именах (UNC). Код отобразился бы в списке как \\MyServer\MyMachine\MyFolder.

      Копировать код
    MyForm.List1.AddItem("\\\\MyServer\\MyMachine\\MyFolder")
  • Если выражение начинается с множественных наклонных черт влево, элемент не заблокируется. Если Вы хотите отключить элемент, который начинается с множественных наклонных черт влево, следует добавлять наклонную черту влево и близкую скобку (]) к началу элемента. Например, следующее отключило бы UNC путь в элементе в списка:

      Копировать код
    MyForm.List1.AddItem("\]\\\MyServer\\MyMachine\\MyFolder")
  • Чтобы включать строку разделителя, используйте наклонную черту влево, сопровождаемую дефисом, чтобы добавить элемент в список. Например, следующий код добавляет строку разделителя к списку:

      Копировать код
    MyForm.List1.AddItem("\-")

Вы можете также использовать элемент управления ActiveX, который добавляет дополнительные характеристики, типа CheckBox, элементы управления TreeView или ListView.

Пример

Следующий пример создает элемент управления ListBox. Источник элементов, которые появляются в списке - массив, заданный свойствами RowSourceType и RowSource .

Свойство MultiSelect для списка установлено на истину (.T)., разрешая Вам делать множественные выбор из списка. Элемент или элементы, которые Вы выбираете, отображены, используя свойства ListCount, Selected, и List (которые определяют номер элементов в списке и элементах, которые Вы выбрали).

  Копировать код
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

Смотреть также