Читайте также: |
|
Класс объектов «комбинированный список». Объект включает в себя однострочное текстовое поле и список ListBox. Он используется для хранения данных в виде строк с возможностью выбора любой строки списка. Кроме того, можно ввести в список новое значение с помощью текстового поля. Компонент можно использовать в одном из трех вариантов, что определяется свойством DropDowmStyle:
• Simple - строка со списком, возможен ввод нового;
• DropDown - только строка, возможен ввод нового;
• DropDownList - строка без возможности ввода нового.
В том случае, когда новый вариант следует запомнить в списке, можно использовать событие Leave, которое возникает при потере фокуса ввода (при завершении набора нового значения). Обработчик данного события должен содержать алгоритм, запоминающий в списке новое значение. При этом желательно не записывать в список те значения, которые в нем уже есть:
private void comboBox1_Leave(object sender, EventArgs e)
{ if (comboBox1.Items.Contains(comboBox1.Text)) { }
else comboBox1.Items.Add(comboBox1.Text);
}
При этом надо подписаться на событие:
this.comboBox1.Leave += new System.EventHandler
(this.comboBox1_Leave);
К рассмотренному примеру следует сделать примечание. Дело в том, что этот обработчик получает управление только при потере компонентом фокуса ввода, т. е. если произошло переключение на другой компонент формы. Если же такого переключения не произошло, то и обработчик не запускается. Поэтому, можно рекомендовать иной способ немедленного «отлова» нового значения. Когда заканчивается набор, то нажимается клавиша Enter.
Можно организовать «отлов» нажатия на эту клавишу, используя этот факт как событие. Добавим подписку на нажатие клавиши:
this.comboBox1.KeyPress+=new System.Windows.Forms.KeyPressEventHandler(comboBox1_KeyPress);
Добавим метод-обработчик:
private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
{ if (e.KeyChar == (char)Keys.Enter)
{ if (comboBox1.Items.Contains(comboBox1.Text)) { }
else comboBox1.Items.Add(comboBox1.Text); } }
Основное назначение объекта - дать пользователю возможность выбрать из списка нужное значение. С объектом связано событие SelectedlndexChanged, возникающее при выборе значения. Это событие является основным для объекта, т. е. подключение к событию выполняется автоматически вместе с созданием обработчика. Имеется несколько свойств (Selectedlndex, Selectedltem, SelectedValue, SelectedText), анализируя которые можно определить, что именно выбрано.
Checkbox
Класс объектов «флажок». Объект используется для того, чтобы пользователь имел возможность определить направление выполнения алгоритма. Например, можно выдавать список студентов на экран полностью со всеми данными (курс, группа и т. п.) или только фамилии. В форме можно организовать флажок с таким текстом: «только фамилии». При выборе флажка (пометка «галочкой») алгоритм сработает по второму варианту, при отмене выбора
-по первому.
С объектом связано много событий, но главным является событие CheckedChanged, связанное с изменением состояния флажка. Устанавливаемые значения могут быть «да - нет» или «да - нет
- не уверен». В последнем случае галочка устанавливается, но флажок будет затенен. Проверку состояния флажка можно выполнить по свойству Checked (true и false) или по свойству CheckState (значения перечисления Checked, Unchecked, Indeterminate). При использовании трех значений свойство ThreeState должно быть установлено как true.
Дата добавления: 2015-08-09; просмотров: 197 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Компоненты пространства имен System.Windows.Forms | | | Методы передачи данных в ЦПС |