logo
Учебник_ПОА

Приложения Windows Forms36

В типичном приложении Windows с графическим пользовательским интерфейсом большая часть действий после первоначального запуска происходит в ответ на действия пользователя, таких как перемещение мыши, выбор пункта меню или ввод текста. Такие действия воспринимаются windows-приложением как некоторые события и они могут быть связаны с вызовом особых методов, называемых обработчиками событий. Практически все, что делает программа Windows инициируется обработчиками событий. При отсутствии событий программа бездействует.

В отличие от процедурных языков программирования, таких как COBOL, BASIC или FORTRAN, здесь используется событийно управляемая модель. Наиболее фундаментальное различие в событийно управляемом программировании состоит в том, что программное обеспечение и сама операционная система вызывают методы обработчиков событий в приложении пользователя. Неизвестно, какие методы они вызовут. Программист может решить, какие события обрабатывать в приложении. Но, если возникновение события зависит от пользователя (например, нажатие кнопки или перемещение курсора мышки), то программист не должен рассчитывать на какой-либо порядок, в котором такие события будут происходить.

В типичном приложении Windows поля, массивы и коллекции, хранящие сведения о состоянии приложения, находятся в основном классе формы, имеющем по умолчанию имя Form1. В области действия класса эти члены доступны из всех методов обработчиков событий, реализованных в том же классе формы. При возникновении какого-либо события происходит вызов соответствующего обработчика этого события, если он описан. Далее обработчик может произвести действия над доступными ему данными в приложении. После завершения работы обработчика приложение вернется в состояние ожидания. Например, форма может содержать элемент TextBox и кнопку Обновить. Если у кнопки описан обработчик события Click, то при ее нажатии будет вызван этот обработчик. К примеру, обработчик может взять текст из TextBox и затем добавить его в какой-либо список строк, хранящийся в области действия класса. После этого приложение вернется в состояние ожидания. В ответ на пользовательский ввод другие обработчики событий могут осуществлять иные виды действий с тем же списком строк.

Пользовательские классы могут отправлять и получать события, используя те же механизмы, что и Windows Forms.