Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Жизненный цикл типа Form




Возможности класса Form

Возможности класса Control

Анатомия формы

В мире Windows Forms тип Form представляет любое окно в приложении, включая главное окно самого верхнего уровня, дочерние окна приложений с многодокументным интерфейсом (multiple document interface — MDI), а также модальные и немодальные диалоговые окна. Тип Form содержит множество возможностей, унаследованных от классов-предков, а также из реализуемых им многочисленных интерфейсов.

Для полноценного порождения типа Form нужны и многие другие базовые классы и интерфейсы, но даже профессиональному разработчику Windows Forms совсем не обязательно знать роли всех членов всех классов или реализованных интерфейсов. Вообще-то большинство членов (а именно, свойств и событий) можно спокойно настраивать с помощью окна Properties (Свойства). Однако все-таки важно знать возможности, предоставляемые родительскими классами Control и Form.

Класс System.Windows.Forms.Control задает общее поведение, необходимое для любого типа графического пользовательского интерфейса. Основные члены класса Control позволяют настраивать размер и позицию элемента, захватывать данные клавиатуры и мыши, получать или задавать фокус/видимость члена и т.д. Ниже приведены наиболее интересные свойства, которые сгруппированы по схожести функций.

§ BackColor, ForeColor, Backgroundlmage, Font, Cursor - Определяют основные качества элемента (цвет, шрифт текста и вид курсора мыши, когда он находится над элементом)

§ Anchor, Dock, AutoSize - Управляют положением элемента внутри контейнера

§ Top, Left, Bottom, Right, Bounds, ClientRectangle, Height, Width - Задают текущие размеры элемента

§ Enabled, Focused, Visible - Содержат логические значения, которые задают состояние элемента

§ ModifierKeys - Статическое свойство, проверяет текущее состояние клавиш-модификаторов (Shift, Ctrl и Alt) и возвращает это состояние в типе Keys

§ MouseButtons - Статическое свойство, проверяет текущее состояние кнопок мыши (левая, правая и средняя) и возвращает это состояние в типе MouseButtons

§ Tablndex, TabStop - Позволяют настроить очередность переходов при нажатии клавиши < Таb >

§ Opacity - Определяет прозрачность элемента 0.0 — полностью прозрачный, 1.0 — полностью непрозрачный)

§ Text - Содержит строковые данные, связанные с данным элементом

§ Controls - Предоставляет доступ к строго типизированной коллекции (например, ControlsCollection), которая содержит все дочерние элементы данного управляющего элемента

Конечно, класс Control определяет ряд событий, которые позволяют перехватывать действия, связанные, к примеру, с мышью, клавиатурой, отображением и перетаскиванием. Некоторые полезные события, сгруппированные по схожести функций, приведены ниже.

§ Click, Doubleclick, MouseEnter, MouseLeave, MouseDown, MouseUp, MouseMove, MouseHover, MouseWheel - Позволяют взаимодействовать с мышью

§ KeyPress, KeyUp, KeyDown - Позволяют взаимодействовать с клавиатурой

§ DragDrop, DragEnter, DragLeave, DragOver - Позволяют отслеживать действия при перетаскивании

И, наконец, базовый класс Control определяет несколько методов, которые позволяют взаимодействовать с любым типом, порожденным от Control. Просматривая методы типа Control, обратите внимание, что имена многих из них содержат префикс On с последующим именем конкретного события (например, OnMouseMove, OnKeyUp и On Paint). Каждый из таких виртуальных On-методов представляет собой обработчик соответствующего события по умолчанию. Если вы переопределите любой из этих виртуальных методов, вы получите возможность выполнять всю необходимую пред- и постобработку события перед и после вызова реализации по умолчанию в родительском классе.

Обычно (хотя и не обязательно) класс Form является непосредственным базовым классом для пользовательских типов Form. Кроме обширного набора членов, унаследованных от классов Control, ScrollableControl и ContainerControl, тип Form добавляет дополнительные возможности — в особенности для главных окон, дочерних MDI-окон и диалоговых окон.

§ AcceptButton - Получает или назначает кнопку на форме, для которой имитируется щелчок при нажатии клавиши < Enter >

§ ActiveMdiChild, IsMdiChild, IsMdiContainer - Используются в контексте MDI-приложений

§ CancelButton - Получает или назначает кнопку на форме, для которой имитируется щелчок при нажатии клавиши < Esc >

§ ControlBox - Получает или устанавливает значение, которое указывает, есть ли на форме блок управления (обычно значки, позволяющие свернуть, развернуть и закрыть форму в правом верхнем углу окна)

§ FormBorderStyle - Получает или задает стиль формы. Используется в сочетании с перечислением FormBorderStyle

§ Menu - Получает или устанавливает меню, расположенное на форме

§ MaximizeBox, MinimizeBox - Определяют, активны ли на форме значки развертывания и свертывания

§ ShowlnTaskbar - Определяет, будет ли отображаться форма на панели задач Windows

§ StartPosition - Получает или определяет первоначальную позицию формы во время выполнения, заданную с помощью перечисления FormStartPosition

§ WindowState - Задает отображение формы на этапе запуска. Используется в сочетании с перечислением FormWindowState

Кроме многочисленных стандартных On-обработчиков событий, тип Form определяет ряд основных методов, перечисленных ниже.

§ Activate () - Делает данную форму активной и передает ей фокус ввода

§ Close() - Закрывает текущую форму

§ CenterToScreen() - Помещает форму в центр экрана

§ LayoutMdi() - Размещает все дочерние формы (в соответствии с перечислением MdiLayout) в родительской форме

§ Show () - Выводит форму как немодальное окно

§ ShowDialog() Выводит форму как модальное диалоговое окно

И, наконец, класс Form определяет ряд событий, большинство из которых генерируются во время жизни формы:

§ Activated - Возникает при активации формы, т.е. при получении фокуса на рабочем столе

§ FormClosed - Возникают непосредственно перед закрытием формы и сразу после FormClosing закрытия

§ Deactivate - Возникает при деактивации формы, т.е. при потере фокуса на рабочем столе

§ Load - Возникает после размещения формы в памяти, но еще до отображения на экране

§ MdiChildActive - Возникает при активации дочернего окна

Жизнь формы начинается тогда, когда вызывается конструктор класса перед его передачей методу Application.Run(). Когда объект помещен в управляемую кучу, среда генерирует событие Load (Загружен). В обработчике события Load можно настроить внешний вид объекта Form, подготовить содержащиеся в нем дочерние элементы (наподобие ListBox и TreeView) или выделить ресурсы, необходимые для работы формы (например, подключение к базе данных и модули доступа к удаленным объектам). После события Load генерируется событие Activated (Активирован), но только тогда, когда форма получает фокус как активное окно на рабочем столе. Логической противоположностью событию Activated является (конечно же) событие Deactivate (Деактивирован), которое возникает, когда форма перестает быть активным окном.

События Activated и Deactivate могут возникать неоднократно за время жизни конкретного объекта Form, когда пользователь переключается между активными окнами и приложениями. Если пользователь решает закрыть данную форму, возникают два события: FormClosing (Форма закрывается) и FormClosed (Форма закрыта). Событие FormClosing генерируется первым и удобно для вывода конечному пользователю сообщения: "Вы уверены, что хотите закрыть данное приложение?" Этот шаг позволяет пользователю сохранить все нужные данные, прежде чем закрыть приложение.

Событие FormClosing работает в сочетании с делегатом FormClosingEventHandler. Если установить свойство FormClosingEventArgs.Cancel равным true, то окно не будет уничтожено и просто возвратится к нормальной работе. А если FormClosingEventArgs.Cancel равно false, то возникает событие FormClosed, и приложение Windows Forms завершает работу, выгружает AppDomain и завершает процесс.




Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 365; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.023 сек.