Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Список – ListBox



Элемент управления ListBox позволяет отобразить список позиций, из которых пользователь может выбрать нужную позицию щелчком мыши.

Доступ к выбранному элементу:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

textBox7.Text = (string)listBox1.SelectedItems[0].ToString();

}

Элемент управления ListBox может поддерживать выбор одной или нескольких позиций, для чего предусмотрено свойство SelectionMode.

ListBox содержит также свойство MultiColumn, с помощью которого можно отобразить список позиций в виде нескольких столбцов, а не одного вертикального столбца. Это позволяет отобразить больше позиций списка и устраняет необходимость его прокрутки для поиска нужной позиции.

Как правило, Windows сама обрабатывает задачу рисования позиций, отображаемых в ListBox. С помощью свойства DrawMode и обработки событий MeasureItem и DrawItem можно переопределить автоматическое рисование, выполняемое средствами Windows, и рисовать элементы своими силами. С помощью элементов управления ListBox, рисуемых пользователем, можно отображать элементы переменной высоты, изображения или выделение разных позиций списка разными цветами. Свойство HorizontalExtent, методы GetItemHeight и GetItemRectangle также способствуют рисованию собственных элементов.

Кроме функций отображения и выбора, ListBox также реализует возможности, позволяющие эффективно добавлять элементы в ListBox и выполнять поиск текста в элементах списка. С помощью методов BeginUpdate и EndUpdate можно добавлять к ListBox большое число позиций, причем элемент управления не будет перерисовываться при добавлении к списку каждой новой позиции. Методы FindString и FindStringExact позволяют найти в списке элемент, содержащую определенную строку поиска.

Свойства Items, SelectedItems и SelectedIndices предоставляют доступ к трем коллекциям, используемым ListBox. В следующей таблице приведен обзор трех коллекций, используемых ListBox, и их применения в элементе управления.

Класс коллекции Используйте в ListBox
ListBox.ObjectCollection Объединяет все позиции, содержащиеся в элементе управления ListBox.
ListBox.SelectedObjectCollection Содержит коллекцию выделенных позиций, являющееся подмножеством множества всех позиций, содержащихся в элементе управления ListBox.
ListBox.SelectedIndexCollection Содержит коллекцию выделенных индексов, являющееся подмножеством множества индексов ListBox.ObjectCollection. Эти индексы указывают выделенные позиции.

Следующие три примера иллюстрируют три индексируемых коллекции, поддерживаемые классом ListBox.

На примере следующей таблицы демонстрируется, как в коллекции ListBox.ObjectCollection хранятся элементы объекта ListBox, а также показываются их состояния выбора в образце объекта ListBox.

Указатель Элемент Состояние выбора в списке ListBox
  object1 Не выбран
  object2 Выбран
  object3 Не выбран
  object4 Выбран
  object5 Выбран

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

Указатель Элемент
  object2
  object4
  object5

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

Указатель Индекс элемента
   
   
   

Метод Add класса ListBox.ObjectCollection позволяет добавлять позиции в ListBox. Метод Add может принимать любой объект при добавлении элементов в ListBox. При добавлении объекта в ListBox элемент управления использует текст, определенный в методе ToString объекта, если только имя элемента в объекте не было указано в свойстве DisplayMember. Кроме добавления позиций с помощью метода Add класса ListBox.ObjectCollection, добавлять их можно также с помощью свойства DataSource класса ListControl.





Дата публикования: 2015-11-01; Прочитано: 229 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...