|
Windows Forms в технологии .NETФормы, как и все объекты в.NET, наследуются от System.Windows.Forms.Form. Форма, создаваемая с помощью Visual Studio Designer, является классом. Для дальнейшего ее использования необходимо создать экземпляр этого класса: Form2 f = new Form2(); что дает возможность использовать метод формы для вызова: f.ShowDialog(); либо размещения: f.StartPosition = FormStartPosition.CenterScreen; Windows Forms предоставляют очень простые и в то же время мощные механизмы для управления графическим интерфейсом пользователя (GUI). Изменяя свойства в окне Properties, отвечающие за отображение формы на экране (см. табл. 1), форма сама обновляется. Такой дополнительный уровень абстракции позволяет разработчику концентрироваться на его задаче, не заботясь о мелких деталях. Форму можно создавать полностью в коде программы, однако проще использовать для этого Visual Studio Designer. Функциональные возможности класса Form Класс Form обычно (но не обязательно) является непосредственным базовым классом для пользовательских типов Form. Базовые свойства, представлены в таблице 1. Таблица 1. Свойства типа Form
В дополнении к ожидаемым обработчикам событий с префиксом On, предлагаемым по умолчанию в таблице 2, предлагается список базовых методов, определенных типом Form Таблица 2. Основные методы типа Form
Наконец, класс Form определяет ряд событий, связанных с циклом существования формы. Основные такие события описаны в табл.3 Таблица 3. Подборка событий типа Form
Цикл существования объекта Form «Оконные типы» поддерживают множество событий, происходящих в различные моменты цикла существования таких типов. Аналогично и типы Windows Form. «Жизнь» формы начинается - когда вызывается конструктор типа, перед его передачей методу Application.Run(). После размещения соответствующего объекта в управляемой динамической памяти среда разработки приложений генерирует событие Load. В обработчике событий Load можно настроить вид и поведение формы, подготовить содержащиеся в форме дочерние элементы управления (окна списков, деревья просмотра и т.д.), организовать доступ к ресурсам, необходимым для работы формы (установить связь с базами данных, создать агенты для удаленных объектов и т.д.). Следующим событием, генерируемым после события Load, является событие Activated. Это событие генерируется тогда, когда форма получает фокус ввода, как активное окно на рабочем столе. Логическим «антиподом» события Activated является событие Deactivate, которое генерируется тогда, когда форма утрачивает фокус ввода, становясь неактивным окном. События Activated и Deactivate в цикле существования формы могут генерироваться множество раз, поскольку пользователь может переходить от одного активного приложения к другому. Когда пользователь решает закрыть соответствующую форму, по очереди генерируются еще два события: Closing и Closed. Событие Closing генерируется первым и дает возможность предложить конечному пользователю сообщение «Вы уверены, что хотите закрыть это приложение?». Этот шаг с требованием подтвердить выход полезен тем, что пользователь получает возможность сохранить данные соответствующего приложения перед завершением работы программы. Событие Closing работает в паре с делегатом CancelEventHandler, определенным в пространстве имен System.ComponentModel. Если установить для свойства CancelEventArgs.Cancel значение true, форме будет дано указание возвратиться к нормальной работе, и форма уничтожена не будет. Если установить для CancelEventArgs.Cancel значение false, будет сгенерировано событие Closed, и приложение Windows Forms будет завершено (домен приложения будет выгружен и соответствующий процесс прекращен). Резюме. § Load. Генерируется ОДИН РАЗ, непосредственно после первого вызова метода Form.Show() или Form.ShowDialog(). § Activated. Многократно генерируется в течение жизни формы. Когда Windows активизирует форму. Связано с получением и потерей фокуса. Все необходимые мероприятия выполняются здесь. Методы Form.Show(), Form.ShowDialog(), Form.Activate() (передача фокуса, реализованная программно!) способствуют этому. § VisibleChanged. Генерируется всякий раз при изменении свойства Visible формы. Когда она становится видимой или невидимой. Событию способствуют методы Form.Show(), Form.ShowDialog(), Form.Hide(), Form.Close(). § Deactivate. Возникает при потере фокуса формой в результате взаимодействия с пользовательским интерфейсом либо в результате вызова методов Form.Hide() или Form.Cloze() – но только для активной формы. Если закрывать неактивную форму, событие не произойдёт! Сказано, что Activated и Deactivate возбуждаются только при перемещении фокуса в пределах приложения. При переключении с одного приложения на другое эти события не генерируются. § Closing. Непосредственно перед закрытием формы. В этот момент процесс закрытия формы может быть приостановлен и вообще отменён, чему способствует размещаемый в теле обработчика события следующий программный код: e.Cancel = true; // e – событие типа CancelEventArgs. § Closed. Уже после закрытия формы. Назад пути нет. В обработчике этого события размещается любой код для "очистки" (освобождения ресурсов) после закрытия формы. Диалог MessageBox Для вывода каких-либо сообщений можно использовать метод Show класса MessageBox из пространства имен System.Windows.Forms.
MessageBox.Show(“This is a test”, ”Title”, MessageBoxButtons.OK);
Используя этот класс, можно организовать простую интерактивность с пользователем. if(MessageBox.Show(“Press Yes or No?”, ”Title”, MessageBoxButtons.YesNo) == DialogResult.Yes) {…}; ![]() ![]() Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем... ![]() Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право... ![]() Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)... ![]() ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|