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:


Рис. 2.3.

Объекты интерфейса пользователя (кнопки, полосы прокрутки, поля редактирования и т. п.) обозначаются термином элемент управления (control). Основная часть поддержки этих объектов, в частности, ввод с клавиатуры и мыши и визуальное отображение, реализована в классе Control. В классе ScrollableControl добавлена поддержка автоматической прокрутки, которую мы рассмотрим в главе 4. Класс ContainerControl позволяет элементам управления, подобно диалоговым окнам, выступать в качестве родителей (parent) других элементов управления, т.е. другие элементы управления появляются в элементе-контейнере.

Программа NewForm действительно создает форму, но возникает небольшая проблема: конструктор класса Form завершает работу, не показывая создаваемую форму. Форма создается, но не делается видимой. При завершении программы форма уничтожается.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz