а. Вам нужна функция, которая является приемником события (то есть вызывается при его запуске).
б. Вы должны создать обработчик события (иначе называемый
в. Вы должны зарегистрировать этот обработчик событий в элементе управления.
Сказанное может показаться вам слишком сложным, но на практике все оказывается проще и осуществляется с помощью всего лишь одной строки кода. Например, в приведенном ниже коде выполняются все три действия, описываемые пунктами а, б и в.
newButton.Click += new System.EventHandler(this.ClickHandlerForButtons);
Более подробно, по составляющим:
а. this.ClickHandlerForButtons — это функция приемника событий.
б. new System.EventHandler — это делегат, указывающий на приемник событий.
в. newButton.Click +=… — добавляет обработчик событий в список обработчиков событий, которые вызываются при запуске события.
Полезно заглянуть в код функции InitializeComponent формы, откуда можно скопировать код регистрации обработчика события. Важно подчеркнуть, что одна функция может служить приемником произвольного числа самых различных событий. Данная возможность оказывается удобной при работе с массивами элементов управления, поскольку события нескольких элементов управления могут отображаться в единственную функцию.
3. Задание, путем использования свойства
На рис. 13.8 и в листинге 13.2 представлен пример приложения, иллюстрирующего создание кнопок Button и подключение к ним обработчиков событий Click. Вы можете легко адаптировать пример для создания любых желаемых элементов управления.
Рис. 13.8.
Представленный в листинге 13.2 код принадлежит форме в проекте Pocket PC. Для создания и запуска приложения потребуется выполнить следующие действия:
1. Запустите Visual Studio .NET (2003 или более позднюю версию) и создайте приложение C# Smart Device Application.
2. Выберите в качестве целевой платформы Pocket PC. (Для вас будет автоматически создан проект, и на экране появится окно конструктора форм Pocket PC.)
3. Добавьте в форму кнопку Button и переименуйте ее в buttonCreateNewButtons.
4. Дважды щелкните на кнопке, которую вы только что добавили в окне конструктора форм. На экране отобразится окно редактора кода вместе со скелетом функции privatevoidbuttonCreateNewButtons_Click(object sender, System.EventArgs e). Введите в эту функцию приведенный ниже код.
5. Перейдя в окно редактора кода, введите оставшуюся часть приведенного ниже кода, включая те его части, которые расположены выше и ниже кода функции, который вы только что ввели.
6. Установите для свойства MinimizeBox формы значение false. Благодаря этому во время выполнения в верхней правой части формы появится кнопка OK, с помощью которой вы легко сможете закрыть форму и выйти из приложения. Эта возможность оказывается очень полезной при многократном тестировании приложения.
7. Запустите приложение. Вы должны заметить, что каждый раз, когда вы щелкаете на кнопке buttonCreateNewButtons, на форме появляется новая кнопка (как показано на рис. 13.8). Щелчки на любой из вновь созданных кнопок должны приводить к запуску приведенного ниже кода обработчика событий и отображению окна сообщений с текстом, соответствующим той кнопке, на которой был выполнен щелчок
//-------------------------------------
//Счетчик количества создаваемых кнопок
//-------------------------------------
private int m_nextNewButtonIndex;
//---------------------------------------------------------------
//ОБРАБОТЧИК СОБЫТИЙ: Обработчик щелчка на кнопке, которая
// имеется на нашей форме.
//
//Эта функция создает новую кнопку, присоединяет ее к нашей форме
//и подключает обработчик события щелчка для нее
//---------------------------------------------------------------