Список ListBox

Списки.

Перед программистом часто встает задача организации списков, предназначенных для выбора строки из некоторого заранее определенного набора строк. Например, может требоваться список файлов из текущего каталога, список названий цветов для раскраски какого-либо объекта приложения, список режимов работы приложения и т. д.

На панели инструментов Tools системы разработки программного обеспечения Visual Studio .NET имеются готовые элементы управления, с помощью которых программист может легко добавить списки различных типов в свое приложение.

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

Список создаваемый на базе класса CheckedListBox, тоже допускает выбор одно из нескольких элементов. Он представляет собой комбинацию списка ListBox и флажков CheckBox, рассмотренных ранее.

Список класса ComboBox, является комбинацией списка и однострочного редактора текста. Поэтому для данного списка используют свойства и события, аналогичные свойствам и событиям списка ListBox и редактора текста класса TextBox. Если щелкнуть мышью кнопку со стрелкой, расположенную в правой части окна списка ComboBox, это окно раскроется и пользователь будет иметь возможность выбора необходимого значения. Пользователь может выбрать нужную строку из списка или набрать ее при помощи клавиатуры в верхней части окна ComboBox.

Следующими элементами управления являются DomainUpDown и NumericUpDown. Первый из них позволяет выбирать текстовую строку из списка методом последовательного перебора, а второй - последовательно из­менять значение числовой величины.

Список класса ListBox занимает в форме окно, в котором помещается, как правило, несколько строк. Если окно не может отобразить сразу все строки списка, то оно снаб­жается полосой прокрутки. В зависимости от настройки свойств список ListBox мож­но использовать для выбора одного или нескольких элементов. В процессе визуального проектирования приложения для создания списка ListBox программист перетаскивает значок этого списка, расположенный на инструментальной панели Toolbox.

Сразу после создания список пуст. Редактируя свойство Items, можно добавить в список необходимое количество строк.

Целый ряд свойств элемента управления ListBox позволяет задать внешний вид и поведение списка.

Свойство SelectionMode определяет режим выделения элементов списка принимать следующие значения:

• SelectionMode.None;

• SelectionMode.One;

• SelectionMode.MultiSimple;

• SeleetionMode.MultiExtended.

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

Если присвоить свойству SelectionMode значение SelectionMode.One, то пользователь сможет выделить в списке только один элемент.

Значения SelectionMode.MultiSimple и SelectionMode.MultiExter позволяют выделять в списке сразу несколько элементов. В первом из этих случаев выделение нескольких элементов выполняется мышью или клавишей пробела, а во втором. дополнительно можно использовать клавишу Shift и клавиши перемещения курсора.

Установив значение свойства ScrollAlwaysVisible, можно включить режим постоянного отображения полос прокрутки вне зависимости от количества элемент имеющихся в списке.

При помощи свойства Sorted, придав ему значение true, можно включить режим сортировки строк списка, отключенный по умолчанию.

Свойство MultiColumn позволяет расположить строки списка в несколько столбцов.

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

Вначале мы рассмотрим ситуацию, когда пользователю разрешается выделять из списка только один элемент. В этом случае свойству SelectionMode должно быть присвоено значение One. В этом случае номер выделенной строки будет храниться в свойстве Selectedlndex. Самой верхней строке списка соответствует нулевое значе­ние. Заметим, что, если пользователь не выделил ни одной строки, в свойство Selectedlndex будет записано отрицательное значение.

Что же касается Selectedltem, то это свойство хранит текст строки, выделенной в списке пользователем, или пустую строку, если пользователь не выделил ни одной стро­ки списка.

Задание. Для работы с этими свойствами создайте обработчик событий buttonl_Click для кнопки ОК, расположенной в главном окне формы.

Этот обработчик выводит индекс выделенной строки списка и текст этой строки, диалоговом окне MessageВох.

Если пользователю разрешено выбирать из списка сразу несколько элементов, то программа может получить номера выделенных строк, анализируя свойство SelectedIndices. Это свойство представляет собой контейнер, содержащий список строк. Аналогично текст выделенных строк можно извлечь из контейнера

Добавьте приведенные выше строки в тело обработчика событий buttonl_Click .родственно перед вызовом метода MessageBox.Show.