Программный Файл: ...\Samples\Solution\Controls\Lists\Lmsel.scx

Данный пример демонстрирует, как выполнить выделение нескольких элементов в списке ListBox. В тестовой Форме содержится контрол, Список типа ListBox,  для которого свойство MultiSelect содержит значение, = True (.T.). Второй контрол типа ComboBox содержит все выделенные элементы в первом Списке.

Для обработки выделенных, нескольких элементов рассматриваемого Списка — они копируются в соответствующий массив или накапливаются в переменной вашего Приложения; выбранные элементы имеют свойство, значение которого Selected = True (.T.). В представленном далее программном коде события Click отображаются выбранные Элементы Списка, а в дополнительном текстовом боксе отображается общее количество выбранных Элементов:

  CopyCode imageКопировать Код
nNoSelected = 0 && variable to track number of selected items
THISFORM.cboSelected.Clear && clear the combo box

* main processing loop
FOR i = 1 TO THIS.ListCount
IF THIS.Selected(i)
nNoSelected = nNoSelected + 1
THISFORM.cboSelected.Additem (THIS.List(i))
ENDIF
ENDFOR

THISFORM.txtNoSelected.Value = nNoSelected

В программном коде события Init рассматриваемой тестовой Формы, с помощью предпроцессорной  директивы #DEFINEопределяются значения элементов тестового Списка. Каждый определяемый элемент имеет окончание в виде "_LOC". С помощью соответствующего инструментария Локализации компании Microsoft  указанные тестовые строки могут быть "локализованы" в требуемый национальный язык.

См. также