Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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

Свойства Описание
Text определяет надпись формы в заголовке  
Size размеры формы  
DesktopLocation положение окна в момент его появления на экране монитора
ForeColor позволяет изменить предопределённый цвет текста на форме
AcceptButton Читает или устанавливает информацию о кнопке, которая будет «нажата» (в форме), когда пользователь нажмет клавишу <Enter>
ActiveMDIChild IsMDIChild IsMDIContainer Используются в контексте MDI-приложений
CancelButton Читает или устанавливает информацию о кнопочном элементе управления, который будет нажат, когда пользователь нажмет клавишу <Esc>
ControlBox Читает или устанавливает значения, являющееся индикатором наличия у формы экранной кнопки управления окном
FormBorderStyle Читает или устанавливает значение, задающее стиль границы формы (в соответствии с перечнем FormBorderStyl)
Menu Читает или устанавливает информацию о строке меню в форме
MaximizeBox MinimizeBox Используется для информации о наличии у формы кнопок минимизации и максимизации окна.
ShowInTaskbar Указывает будет ли форма видимой в панели задач Windows
StartPosition Читает или устанавливает значение, задающее начальную позицию окна формы (в соответствии с перечнем FormStartPosition)
WindowState Указывает (в соответствии с перечнем Form WindowState), в каком виде должна отображаться форма при запуске

В дополнении к ожидаемым обработчикам событий с префиксом On, предлагаемым по умолчанию в таблице 2, предлагается список базовых методов, определенных типом Form

Таблица 2. Основные методы типа Form

Метод Описание
Activate() Активизирует форму и предоставляет ей фокус ввода
Close() Закрывает форму
CenterToScreen() Размещает форму в центре экрана
LayoutMDI() Размещает все дочерние формы (в соответствии с перечнем LayoutMDI) в рамках родительской формы
ShowDialog() Отображает форму в виде модального диалогового окна.

Наконец, класс Form определяет ряд событий, связанных с циклом существования формы. Основные такие события описаны в табл.3

Таблица 3. Подборка событий типа Form

События Описание
Activated Происходит при активизации формы, т.е. при получении формой фокуса ввода
Closed, Closing Используются при проверке того, что форма закрывается или уже закрыта
Deactivate Происходит при деактивизации формы, т.е. когда форма утрачивает текущий фокус ввода
Load Происходит после того, как форма размещается в памяти, но пока остается невидимой на экране
MDIChildActive Генерируется при активизации дочернего окна

 

Цикл существования объекта 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) {…};







Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.