Московский государственный университет имени М.В.Ломоносова
Опубликован: 01.11.2004 | Доступ: свободный | Студентов: 11271 / 455 | Оценка: 4.12 / 4.01 | Длительность: 19:20:00
ISBN: 978-5-9556-0077-9
Специальности: Программист
Лекция 23:

Библиотека классов .NET Framework среды проектирования Visual Studio .NET. Формы Windows

< Лекция 22 || Лекция 23: 123 || Лекция 24 >

Класс Form

Класс Systems.Windows.Forms.Form используется для создания окна формы.

Формы позволяют отображать различные типы окон.

  • SDI-формы - формы, функционирующие как самостоятельное окно.
  • MDI-формы - формы, которые могут содержать дочерние формы (свойство родительского окна IsMdiContainer должно быть равно True. Например: this.IsMdiContainer = true;; свойство дочернего окна MdiParent должно указывать на родительское окно);
  • формы - диалоги - формы, используемые для размещения элементов управления.

Для создания MDI-приложения можно в пустой проект добавить новый элемент MDI Parent.

Для создания формы, идентичной существующей, в проект следует добавить элемент Inherited Form и указать класс копируемой формы.

Создание новой формы

Для создания и отображения новой формы следует вызвать конструктор формы и затем вызвать метод Show. При этом, если создаваемая форма является дочерней, то следует установить значение свойства MdiParent.

Например:

// Создание нового экземпляра дочерней формы
      Form childForm = new Form();
  // Делаем форму дочерней 
  // для MDI-формы 
  // до ее отображения
       childForm.MdiParent = this;
       childForm.Text = "Window " + childFormNumber++;
       childForm.Show();  // Отображаем дочернюю форму
Закрытие формы

Закрытие формы выполняется вызовом метода Close. Для того, чтобы закрыть все дочерние формы в MDI-приложении, следует использовать свойство MdiChildren, содержащее массив дочерних форм.

Например:

private void CloseAllToolStripMenuItem_Click(
                        object sender,
                        EventArgs e)
  { foreach (Form childForm in MdiChildren)
            {  childForm.Close();    }
  }

Класс Form предоставляет большой набор свойств, включая следующие

AutoScale true Окно и элементы управления масштабируются автоматически в зависимости от размера шрифта
Border.Style FormBorder. Style.Sizable Граница окна позволяет масштабирование окна
ControlBox true Окно содержит кнопку системного меню и кнопки управления (в верхнем правом углу). Кнопки управления показываются, если свойства MaximizeBox и MinimizeBox установлены в true
StartPosition Возможны следующие значения: Manual; CenterScreen; WindowsDefaultLocation; WindowsDefaultBounds; CenterParent
WindowState Возможны следующие значения: Normal; Minimized; Maximized
MainMenuStrip Указывает на линейку меню
IsMdiContainer Определяет, допускаются ли дочерние окна
IsMdiChild Определяет, является ли форма дочерним окном
MdiChildren Массив форм, содержащий дочерние формы
MdiParent Ссылка на родительскую MDI-форму
Controls Коллекция дочерних элементов управления
Text Заголовок окна
OwnerForms Массив форм, принадлежащих данной форме
Owner Владелец формы

Класс Form предоставляет большой набор методов, включая следующие:

  • ActiveForm - возвращает активную форму.
  • Activate - активизирует указанную форму.
  • Close - закрывает форму.
  • Show - показывает форму.
  • ShowDialog - показывает форму в виде модального диалога.
  • Hide - прячет форму.

Для формы возможны следующие события:

  • Click - щелчок мышью на форме.
  • Closing - закрытие формы.
  • Closedv - форма закрыта.
  • Load - первоначальное отображение формы.
  • Activated - активация формы.
  • Deactivate - деактивация формы.
  • GotFocus - получение фокуса формой.
  • LostFocus - потеря формой фокуса.
  • MdiChildActivate - активировано дочернее окно для MDI-формы.
  • MouseEnter - курсор мыши помещен над формой.
  • MouseLeave - курсор мыши покинул форму.

Дочерние окна в MDI-приложении могут быть упорядочены вызовом метода LayoutMdi.

Например:

// Упорядочивание по горизонтали
this.LayoutMdi( MdiLayout.TileHorizontal );
// Упорядочивание по вертикали
this.LayoutMdi( MdiLayout.TileVertical );
// Расположение каскадом
this.LayoutMdi( MdiLayout.Cascade );
< Лекция 22 || Лекция 23: 123 || Лекция 24 >
Александр Демьяненко
Александр Демьяненко

Можно ли сдавать один и тот же тест несколько раз?
Или же один и тот же тест можно сдать лишь однажды?

Максим Стогний
Максим Стогний

Добрый день!

Скажите, пожалуйста, если в терминологии объектно-ориентированного программирования функции также называются методами или методами - членами класса, в примере объявления указателя на метод использовали в формальном описании оба названия:

тип_метода (имя_класса::*имя_метода_указателя)
    (список параметров);
тип_функции (*имя_ функции_указателя)
    (список параметров);

при этом можно было  тип_функции во втором описании заменить на тип_метода? Т.е.:

тип_метода (*имя_ метода_указателя)
    (список параметров);