Классы списков ListBox, ComboBox и CheckedListBox
Одними из наиболее важных возможностей списочных ЭУ являются добавление данных к списку и выбор данных из списка. Какой список использовать, зависит от того, как список будет использоваться и от типа данных, которые будут сохраняться в списке. Если нужна возможность множественного выбора элементов списка или если пользователю нужно видеть несколько элементов сразу, то лучше использовать ЭУ… Читать ещё >
Классы списков ListBox, ComboBox и CheckedListBox (реферат, курсовая, диплом, контрольная)
Все эти классы являются производными от класса ListControl. Данный класс предоставляет некоторую базовую функциональность управления списками элементов произвольного типа. Внешний вид списочных ЭУ показан рис. 8.8.
Рис. 8.8. Элементы управления List Box. ComboBox и CheckedListBox.
Одними из наиболее важных возможностей списочных ЭУ являются добавление данных к списку и выбор данных из списка. Какой список использовать, зависит от того, как список будет использоваться и от типа данных, которые будут сохраняться в списке. Если нужна возможность множественного выбора элементов списка или если пользователю нужно видеть несколько элементов сразу, то лучше использовать ЭУ ListBox. Если выбираться будет только один элемент списка, то можно использовать ComboBox. Классы списочных ЭУ содержат коллекцию объектов, к которой можно обратиться с помощью свойства Items. С этой коллекцией можно работать, как с любой другой коллекцией (см. разд. 7.1). Так как коллекции хранят объекты типа object, то любой объект (встроенного или пользовательского типа) может быть включен в список. Доступ к элементам списка выполняется с помощью операции индексации ltems[i], однако возвращаемый объект будет иметь тип object и для работы с ним необходимо выполнять явное преобразование к требуемому типу объектов. Основные элементы списочных классов приведены в табл. 8.3.
Таблица 8.3.
Основные элементы списочных классов
Элемент. | Описание. |
SelectionMode. | одно из значений перечисления SelectionMode. |
Items. | доступ к коллекции объектов ЭУ (часто используется для доступа, но индексу ltems[i] или добавления элементов Items. Add (o). |
DataSource. | источник данных для заполнения коллекции ЭУ. |
Selected Items. | коллекция выбранных элементов, если задана возможность выбора нескольких элементов. |
Selectedlndices. | коллекция индексов в списке выбранных элементов, если задана возможность выбора нескольких элементов. |
DisplayMember. | название свойства элементов списка, которое будет использоваться для показа на экране. |
ValueMember. | название свойства элементов списка, которое будет возвращаться, как SelectedValue (только при использовании DataSource). |
Selected Item. | ссылка на выбранный элемент списка (тип object). |
Selectedlndex. | ссылка на индекс выбранного элемента списка. |
SelectedValue. | значение свойства выбранного элемента, заданное в свойстве ValueMember. |
Количество элементов списка, которые может выбрать пользователь, зависит от значения свойства SelectionMode. Данное свойство может иметь одно из значений перечисления SelectionMode:
- • None — ни один элемент не может быть выбран;
- • One — только один элемент может быть выбран (по умолчанию);
- • MultiSimple — несколько элементов можно выбрать;
- • MultiExtended — несколько элементов можно выбрать и при этом можно использовать клавиши SHIFT, CTRL и стрелки.
Для занесения данных в коллекцию этих ЭУ можно использовать один из следующих способов:
- • добавлять объекты, используя метод ltems. Add ();
- • создать любую коллекцию объектов (массив, ArrayList, List); занести в нее элементы требуемых типов и указать в качестве источника данных для свойства DataSource.
Если к списку добавляются элементы некоторого типа, то текст, который будет показываться в списке, будет получаться либо с помощью их методов ToString (), либо с помощью того свойства, название которого задано в свойстве DisplayMember. Если данные в ЭУ заносятся с помощью связывания с некоторой коллекцией элементов, то можно также задать свойству ValueMember название свойства элементов коллекции, которое будет возвращать некоторое значение выбранного элемента. Например, если в список включаются, например, объекты разработанного класс Person, который содержит свойства Name и PasportNum, то эти свойства могут быть заданы следующим образом:
list1.DisplayMember = «Name»; listl. ValueMember = «PasportNum» ;
Эти значения сообщают списочному ЭУ, что пользователю необходимо показывать значения свойства Name. А в качестве выбранного значения будет возвращаться значение свойства PasportNum. Ниже приведен пример заполнения списочного ЭУ ListBox и получения выбранных пользователем значений:
private void Form1_Load (object sender, EventArgs e){.
List arr = new List () {new Person («Иванов», 111), new PersonfTleTpoB", 222), new Person («Сидоров», 333)}; listBoxI. DataSource = arr; listBoxI. DisplayMember = «Name»; listBoxI. ValueMember = «PassportNum» ;
}.
private void listBox1_SelectedlndexChanged (object sender, EventArgs e) { int i = (int)listBoxl.Selectedlndex; if (listBoxI .SelectedValue is int) { int s = (int)listBoxl.SelectedValue;
//.. используем полученное значение s.
}.
}.
class Person {.
public string Name {get; set;} public int PassportNum {get; set;}.
public Person (string nm, int num) { Name = nm; PassportNum = num;}.
}.
Элемент управления ComboBox является комбинацией ЭУ TextBox и ListBox. Он позволяет просматривать список элементов, делать выбор и выполнять их изменение. Поведение ComboBox задается с помощью свойства DropDownStyle, которое может принимать одно из следующих значений перечисления DropDownStyle:
- • DropDown — текстовая часть ЭУ может редактироваться пользователем. Можно также делать щелчок на кнопке для показа списка.
- • Simple — аналогичен DropDown, но список элементов всегда виден.
- • DropDownList — текстовую часть ЭУ редактировать нельзя. Пользователи должны выбирать значение из списка.
ЭУ DateTimePicker дает пользователям возможность выбрать значение даты и времени в разных форматах. Можно показать значение типа DateTime (раздел 6.1.2) в любом стандартном формате представления даты и времени.
Свойству Format может быть задано одно из значений перечисления DateTimePickerFormat: Long, Short, Time или Custom. Если задано значение DateTimePickerFormat. Custom, то свойству CustomFormat нужно задать строку форматирования.
Свойство Text возвращает текстовое представление значения DateTime, а свойство Value возвращает объект типа DateTime.
Когда пользователь щелкает кнопку со стрелкой вниз, то появляется календарь, позволяющий выбрать конкретную дату. В ЭУ есть свойства, позволяющие изменить внешний вид календаря путем задания фонового цвета заголовка и поверхности (background colors), а также цвета выводимого текста (foreground colors).