Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шилгд WinForms.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
49.67 Кб
Скачать

Глава 25. Создание Windows-приложений 691

Windows. Таким образом, общий формат всех Windows-программ продиктован меха-

низмом сообщений, который и лежит в основе взаимодействия с Windows.

Существует множество различных сообщений, которые Windows может послать

программе. Например, при каждом щелчке кнопкой мыши в окне вашей программы

будет послано сообщение, связанное со щелчком кнопкой мыши. При щелчке на

электронной кнопке будет послано сообщение другого типа, а при выборе элемента

меню — третего. Здесь необходимо понимать следующее: с точки зрения программы

сообщения поступают случайным образом. Вот почему Windows-программы напоми-

нают программы, управляемые прерываниями. Вы сами не знаете, каким будет сле-

дующее сообщение.

Windows-формы

Ядром Windows-программ, написанных на С#, является форма. Форма инкапсули-

рует основные функции, необходимые для создания окна, его отображения на экране

и получения сообщений. Форма может представлять собой окно любого типа, вклю-

чая основное окно приложения, дочернее или даже диалоговое окно.

Первоначально окно создается пустым. Затем в него добавляются меню и элемен-

ты управления, например экранные кнопки, списки и флажки. Таким образом, форму

можно представить в виде контейнера для других Windows-объектов.

Когда окну посылается сообщение, оно преобразуется в событие. Следовательно,

чтобы обработать Windows-сообщение, достаточно для него зарегистрировать обработ-

чик событий. При получении этого сообщения обработчик событий будет вызываться

автоматически.

КлаСС Form

Форма создается посредством реализации объекта класса Form или класса, произ-

водного от Form. Класс Form помимо поведения, обусловленого собственными члена-

ми, демонстрирует поведение, унаследованное от предков. Среди его базовых классов

выделяются своей значимостью классы System. ComponentModel. Component (см.

главу 24) и System.Windows. Forms.Control. Класс Control определяет черты, при-

сущие всем Windows-элементам управления. Тот факт, что класс Form выведен из

класса Control, позволяет использовать формы для создания элементов управления.

Использование некоторых членов классов Form и Control демонстрируется в приве-

денных ниже примерах.

Схематичная Windows-программа, основанная

на применении окон

Начнем с создания простейшего Windows-приложения, основанного на примене-

нии окон. Это приложение создает и отображает окно, которое не содержит других

элементов управления. Тем не менее оно позволяет показать действия, необходимые

для построения полнофункционального окна. Это окно представляет собой стартовую

площадку, на которой можно построить большинство Windows-приложений. Итак,

Расссмотрим первую Windows-программу:

// Простейшее Windows-приложение, основанное

/ / н а применении окон.

692 Часть III. Применение языка с#

using System;

using System.Windows.Forms;

// Класс WinSkel - производный от класса Form,

class WinSkel : Form {

public WinSkel() {

// Присваиваем окну имя.

Text = "Рама Windows-окна";

// Метод Main() используется только для запуска приложения.

[STAThread]

public static void Main() {

WinSkel skel = new WinSkel(); // Создаем форму.

// Запускаем механизм функционирования окна.

Application.Run(skel) ;

Окно, созданное этой программой, показано на рис. 25.1.

kJ^M^f^CTlfg^^.^ * iiBJglx|:

Рис. 25.1. Окно, созданное

программой WinSkel

Рассмотрим эту программу построчно. Прежде всего обратите внимание на то, что

она включает два пространства имен: System и System. Windows . Forms. Пространст-

во имен System необходимо для использования атрибута STAThread, который пред-

шествует методу Main(), a System. Windows. Forms предназначено для поддержки

подсистемы Windows Forms.

Затем создается класс WinSkel, который наследует класс Form. Следовательно,

класс WinSkel определяет тип формы. В данном случае это самая простая

(минимальная) форма.

В теле конструктора класса WinSkel содержится только одна строка кода:

I Text = "Рама Windows-окна";

Здесь устанавливается свойство Text, которое содержит название окна. Таким об-

разом, после выполнения инструкции присвоения строка заголовка окна будет содер-

жать текст Рама Windows-окна. Свойство Text определяется так:

public virtual string Text { get; set; }

Свойство Text унаследовано от класса Control.

Теперь рассмотрим метод Main (), который объявлен подобно другим методам

Main (), входящим в состав программ этой главы. С этого метода, как вы уже знаете,