netlib.narod.ru | < Назад | Оглавление | Далее > |
Конечно, для создания Windows-программ одних окон сообщений недостаточно. Чтобы начать разработку полноценного приложения для Windows, понадобится то, что в программировании для Windows традиционно называется окном, а в .NET — формой. Обычно в программах Windows Forms формы создаются для главного окна приложения. Кроме того, формы служат для построения диалоговых окон приложения.
Форма, используемая в качестве главного окна приложения, обычно состоит из заголовка (caption bar, title bar) с именем приложения, меню (menu bar), расположенного под заголовком, и внутренней области — клиентской области (client area). Форма окружается рамкой, позволяющей изменять ее размеры, или тонкой рамкой, не позволяющей изменять размеры. До главы 14 мы будем создавать формы без меню.
В дальнейшем, перед тем как применить общепринятый испытанный метод, я собираюсь рассмотреть несколько нестандартных и нетрадиционных подходов к созданию форм и покажу их на экране. Надеюсь, при таком подходе вы будете лучше понимать происходящее.
Для начала рассмотрим программу, которую я считаю самой короткой программой, создающей формы. Она называется NewForm.cs.
NewForm.cs
//----------------------------------------- // NewForm.cs (C) 2001 by Charles Petzold //----------------------------------------- class NewForm { public static void Main() { new System.Windows.Forms.Form(); } }
Эту программу можно сделать еще короче, лишь использовав более короткое имя класса, опустив комментарии и «лишние» пробелы и удалив модификатор доступа public, не являющийся строго обязательным.
Form — это класс пространства имен System.Windows.Forms. В программе NewForm применяется оператор new для создания нового экземпляра класса Form. Как вы уже знаете, можно сделать программу чуть-чуть длиннее, поместив в начало программы инструкцию using:
using System.Windows.Forms;
тогда единственная инструкция модуля Main будет иметь вид:
new Form();
Можно также определить объект типа Form:
Form formOfMine;
и потом присвоить этому объекту результат оператора new:
formOfMine = new Form();
И, наконец, можно выполнить эти два действия одной строкой кода:
Form formOfMine = new Form();
Класс Form происходит от ContainerControl, но на самом деле у него длинная родословная, начинающаяся с класса Object, от которого происходят все классы .NET Framework:
Объекты интерфейса пользователя (кнопки, полосы прокрутки, поля редактирования и т. п.) обозначаются термином элемент управления (control). Основная часть поддержки этих объектов, в частности, ввод с клавиатуры и мыши и визуальное отображение, реализована в классе Control. В классе ScrollableControl добавлена поддержка автоматической прокрутки, которую мы рассмотрим в главе 4. Класс ContainerControl позволяет элементам управления, подобно диалоговым окнам, выступать в качестве родителей (parent) других элементов управления, т.е. другие элементы управления появляются в элементе-контейнере.
Программа NewForm действительно создает форму, но возникает небольшая проблема: конструктор класса Form завершает работу, не показывая создаваемую форму. Форма создается, но не делается видимой. При завершении программы форма уничтожается.
netlib.narod.ru | < Назад | Оглавление | Далее > |