Книга: Программирование мобильных устройств на платформе .NET Compact Framework
Листинг 11.3. Запуск обработчика событий при изменении содержимого элемента TextBox программным путем
Листинг 11.3. Запуск обработчика событий при изменении содержимого элемента TextBox программным путем
int m_eventTriggerCount;
private void textBox1_TextChanged(object sender, System.EventArgs e) {
m_eventTriggerCount++;
//Обновить надпись для отображения количества событий
label1.Text = "Events: #" + m_eventTriggerCount.ToString();
//Внести каждое событие в список
listBox1.Items.Add(m_eventTriggerCount.ToString() + textBox1.Text);
}
private void button1_Click(object sender, System.EventArgs e) {
//Запускает событие TextChanged так же,
//как если бы текст был введен пользователем
textBox1.Text = "Hello World";
}
Как видно из листинга 11.3, программная установка свойства Text элемента управления TextBox запускает тот же код обработки событий, который запускался бы при вводе текста пользователем. В зависимости от того, какие допущения вами сделаны, результаты могут как совпадать, так и не совпадать с ожидаемыми. Программисты часто пишут коды, предназначенные для заполнения пользовательских интерфейсов данными после их извлечения из внешнего источника. При этом устанавливаются свойства Checked переключателей RadioButton и флажков CheckBox, заполняются значения текстовых полей TextBox, заполняются элементами списки ListBox и ComboBox и так далее. Во многих случаях программисты предполагают, что выполнение всех этих установочных действий не приводит к запуску событий пользовательского интерфейса. Обычно в намерения программиста не входит, чтобы эти события запускались, поскольку пользовательский интерфейс всего лишь подготавливается к тому, чтобы пользователь мог им воспользоваться. Очень часто программисты, которые разрабатывают приложение, хотят, чтобы код обработки событий приложения запускался лишь тогда, когда происходит внешнее событие, например, поступает сигнал таймера, пользователь выполняет щелчок на кнопке или вводит текст в элемент управления и тому подобное.
- Пример: демонстрация возбуждения события, заключающегося в изменении содержимого текстового окна в результате установки значения свойства .Text
- Листинг 11.3. Запуск обработчика событий при изменении содержимого элемента TextBox программным путем
- Не позволяйте событиям заставать вас врасплох
- Пример приложения Pocket PC, демонстрирующий работу средств контроля запуска событий
- Листинг 11.4. Использование модели состояний для обновления интерфейса и контроль запуска событий с целью более глубокого изучения процесса обработки событий и управления им
- Запуск InterBase-сервера
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Раздел VII Левиафан в Сети: защита права на тайну частной жизни после событий 2013 г.
- Одновременный запуск нескольких копий сервера (multi-instancing)
- Расширение механизма событий
- Использование типов содержимого и столбцов
- Листинг 15.11. Код для загрузки файла с Web-сервера
- Письма с элементами графики и вложениями
- Запуск Access. Открытие учебной базы данных Борей
- Управление объединением содержимого узлов
- Создание столбцов и работа с типами содержимого