Программирование >>  Обработка исключительных ситуаций 

1 ... 103 104 105 [ 106 ] 107 108 109 ... 142


private void textBoxl KeyPress(object sender.

System.Windows.Forms.KeyPressEventArgs e)

12

Рассмотрим текст программы. В операторах 1 и 2 в класс формы добавляются два закрытых поля: строка ввода типа TextBox и кнопка типа Button. Эти типы определены в пространства имен System.Windows .Forms, которое подключается в соответствующей директиве using, поэтому можно записать эти и соседние строки проще:

public class Forml : Form О

private TextBox textBoxl; 1

private Button buttonl; 111

private Container components = null; Чаще всего программист изменяет имена, присваиваемые элементам средой, более осмысленными. Это можно сделать, задав новое значение свойства Name элемента.

ПРИМЕЧАНИЕ -

Того же самого эффекта можно достичь и с помощью вкладки Class View (View Class View), выбрав в списке нужный элемент и изменив значение его свойства Name в окне свойств. Обратите внимание на то, что при этом в нем отображаются свойства кнопки buttonl не как элемента интерфейса, а как поля класса. Можно изменить имена и вручную, но это более трудоемко и чревато ошибками.

Самое важное происходит в методе InitializeComponent.

В операторах 3 и 4 создаются экземпляры компонентов, затем для каждого из них задаются свойства, определяющие их положение, размер, вид и т. д. Обратите

thi s.Controls.Add(thi s.textBoxl) 9

this.Name = Forml ; this.Text = Forml ;

this.ResumeLayout(false); 10

lendregion

static void MainO

Application.Run(new Forml 0) ; private void buttonl Click(object sender. System.EventArgs e)

11



внимание на операторы 6 и 7. В них регистрируются обработчики соответствующих событий. Механизм обработки событий тот же, что мы рассматривали в главе 10 (см. с. 232) - он описывается моделью публикация - подписка .

Например, для кнопки buttonl, в составе которой есть событие С! ick, регистрируется обработчик buttonl Click, являющийся закрытым методом класса Forml. Это значит, что при наступлении события нажатия на кнопку (об этом сообщит операционная система) будет вызван соответствующий обработчик.

Имя обработчика сформируется средой автоматически из имени экземпляра компонента и имени события. Обратите внимание на то, что обработчикам передаются два параметра: объект-источник события и запись, соответствующая типу события.

ПРИМЕЧАНИЕ-

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

После создания экземпляров компонентов и настройки их свойств компоненты заносятся в коллекцию, доступ к которой выполняется через свойство Controls (операторы 8 и 9). Если этого не сделать, компоненты не будут отображаться на форме. Коллекция поддерживает метод1 добавления и удаления компонентов (Add и Remove).

Таким образом, для размещения компонента на форме необходимо выполнить три действия:

1. Создать экземпляр соответствующего класса.

2. Настроить свойства экземпляра, в том числе зарегистрировать обработчик событий.

3. Поместить экземпляр в коллекцию компонентов формы.

Операторы 5 и 10 используются для того, чтобы все изменения в свойства элементов вносились одновременно. Для этого в операторе 5 внесение изменений замораживается , а в операторе 10 разрешается.

В теле обработчиков событий (операторы 11 и 12) программист может наконец-то самостоятельно написать код, который будет выполняться при наступлении события. Добавим в эти строки операторы, выводящие окна сообщений с соответствующим текстом:

MessageBox.Show( Нажата кнопка buttonl ); 11

MessageBox.Show( Нажата клавиша + e.KeyChar); 12

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

Прежде чем приступить к изучению форм и элементов управления, размещаем1х* на формах, необходимо рассмотреть их общего предка - класс Control.



Класс Control

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

Наиболее важные свойства класса Control церечислены в табл. 14.2, методы - в табл. 14.3.

Таблица 14.2. Основные свойства класса Control

Свойство Anchor

BackColor,

Backgroundlmage, Font, ForeColor, Cursor

Bottom, Right Top, Left Bounds

CIientRectangle

ContextMenu

Dock

Location

Height, Width Size

Описание

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

Определяют параметры отображения рабочей области формы: цвет фона, фоновый рисунок, шрифт, цвет текста, вид указателя мыши

Координаты нижнего правого угла элемента. Могут устанавливаться также через свойство Size

Координаты верхнего левого угла элемента. Эквивалентны свойству Location

Возвращает объект типа Rectangle (прямоугольник), который определяет размеры элемента управления

Возвращает объект Rectangle, определяющий размеры рабочей области элемента

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

Определяет, у какого края родительского контейнера будет отображаться элемент управления

Координаты верхнего левого угла элемента относительно верхнего левого угла контейнера, содержащего этот элемент, в виде структуры типа Pol nt. Структура содержит свойства X и Y

Высота и ширина элемента

Высота и ширина элемента в виде структуры типа Size. Структура содержит свойства Height и Width

продолжение

Речь идет не о наследовании, а о взаимоотношениях объектов во время выполнения программы. Например, если на форме размещена кнопка, форма является родительским объектом по отношению к кнопке.

&



1 ... 103 104 105 [ 106 ] 107 108 109 ... 142

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика