- •Введение
- •1 Компоненты Visual C#
- •1.1 Компонент класса TextBox
- •1.2 Компонент класса Label
- •1.3 Компонент класса Button
- •1.4 Компонент класса DataGridView
- •1.5 Компонент класса NumericUpDown
- •2 Примеры выполнения практических заданий
- •2.1 Простейшие алгоритмы
- •2.2 Выражения
- •2.3 Циклы
- •2.4 Одномерные массивы
- •2.5 Матрицы
- •2.6 Строки
- •2.7 Записи и файлы
- •2.8 Функции и процедуры
- •Список литературы
1 Компоненты Visual C#
Как и любая программная единица, компонент имеет идентификатор (имя), а также характеризуется базовым классом. Класс компонента определяет набор его свойств, методов и событий. Идентификатор присваивается средой Visual C# автоматически с использованием имени класса (с маленькой начальной буквой) и порядкового номера компонента, например, button1, label12. Как правило, такие имена идентификаторов изменяются на более понятные1.
Обращение к свойствам и методам компонента, в соответствии с принципом ООП, осуществляется в виде:
<идентификатор компонента>.<идентификатор свойства или метода>,
например, button1.Text, где button1 – идентификатор компонента; Text – идентификатор свойства. При такой записи обращения к свойству компонента считается, что обращение производится из метода той формы, на которой он расположен. Если же требуется обращение к компоненту, расположенному на другой форме, то идентификатор формы также должен указываться, например, form2.button1.Text (при этом, компонент должен быть доступен из вне класса формы).
Описание поведения компонента при возникновении того или иного события, заключается в реализации соответствующего метода. Например, поведение компонента button1 (кнопка) при нажатии (событие Click) описывается в методе класса формы:
private void button1_Click(object sender, EventArgs e)
{
// Описание реализации реакции на нажатие
};
Таким образом, собственно текст программы состоит фактически из набора описаний поведения компонентов при возникновении тех или иных событий.
Использование иерархического принципа наследования компонентов позволяет компонентам иметь базовый набор свойств, методов и событий, что значительно облегчает изучение и создание новых компонентов. Большинство компонентов являются прямыми или косвенными наследниками классов Object, Component, Control. В таблицах 1 и 2 приводится описание наиболее
1 В данных методических указаниях будут использоваться идентификаторы, состоящие из двух частей, разделенных знаком подчеркивания. Первая часть определяет назначение компонента, а вторая дает информацию о его классе, например, Count_TB, является компонентом класса TextBox и служит для ввода некоторого количества.
5
часто используемых свойств, методов и событий этих классов, имеющихся у большинства компонентов.
Таблица 1 – Наиболее часто используемые свойства компонентов
Наименование |
Тип |
|
Назначение |
|
|
Свойства |
|
Name |
string |
|
Определяет идентификатор компонента. |
|
|
|
Подчиняется всем правилам, применяе- |
|
|
|
мым при выборе идентификаторов пере- |
|
|
|
менных, констант, типов и т.д. |
Dock |
DockStyle |
|
Определяет способ выравнивания компо- |
|
(перечисля- |
|
нента в пределах его визуального вла- |
|
емый) |
|
|
|
|
дельца (нет, слева, справа, снизу, сверху, |
|
|
|
|
|
|
|
|
по всему компоненту) |
AutoSize |
bool |
|
Определяет, будет ли компонент автома- |
|
|
|
тически менять свой размер в зависимости |
|
|
|
от содержания. |
AutoSizeMode |
AutoSizeMode |
|
Определяет направление изменения раз- |
|
(перечисля- |
|
мера: |
|
емый) |
|
|
|
|
GrowAndShrink – размеры компонента |
|
|
|
|
|
|
|
|
могут увеличиваться или уменьшаться, |
|
|
|
но их невозможно изменять вручную; |
|
|
|
GrowOnly – размеры компонента могут |
|
|
|
увеличиваться, однако они не умень- |
|
|
|
шаются до значения, меньшего задан- |
|
|
|
ного свойством Size. Размеры формы |
|
|
|
можно изменять, но их нельзя сделать |
|
|
|
настолько малыми, что какие-либо со- |
|
|
|
держащиеся в ней компоненты стано- |
|
|
|
вятся скрытыми |
Font |
Font |
|
Определяет вид и параметры шрифта, ис- |
|
|
|
пользуемые для вывода надписей на ком- |
|
|
|
поненте |
Text |
string |
|
Определяет текстовую строку, которая |
|
|
|
может являться как подписью компонен- |
|
|
|
та, так и свойством, определяющим вве- |
|
|
|
денные пользователем данные |
ClientSize |
Size |
|
Свойства, описывающие параметры кли- |
ClientRectangle |
Rectangle |
|
ентской области, т.е. положение и макси- |
|
|
|
|
|
|
|
мальные размеры, которые может иметь |
|
|
|
компонент, для которого данный является |
|
|
|
визуальным владельцем (высота–ширина, |
|
|
|
параметры прямоугольной области) |
6
Продолжение таблицы 1
Наименование |
Тип |
Назначение |
Enabled |
bool |
Определяет, может ли компонент реаги- |
|
|
ровать на нажатие мыши, клавиатуры, |
|
|
другие события. Даже если это свойство |
|
|
установлено в false, компонент остается |
|
|
доступным для программирования |
Location |
Point |
Координаты левого верхнего угла компо- |
|
|
нента (Location.X и Location.Y) |
Size |
Size |
Размены компонента (Size.Width и |
|
|
Size.Height) |
Visible |
bool |
Определяет, видим ли в данный момент |
|
|
компонент, т.е. требуется ли его отобра- |
|
|
жение. Невидимые компоненты остаются |
|
|
доступными для программирования |
ForeColor |
Color |
Определяет основной цвет и цвет фона |
BackColor |
|
компонента |
|
|
|
TabIndex |
int |
Определяет последовательность перехода |
|
|
между компонентами при нажатии кла- |
|
|
виши TAB |
TabStop |
bool |
Определяет необходимость останавли- |
|
|
ваться на компоненте при переходе между |
|
|
компонентами при помощи клавиши TAB |
Таблица 2 – Наиболее часто используемые методы и события компонентов
Наименование |
Назначение |
|
Методы |
Hide |
Вызывается для того, чтобы сделать компонент невиди- |
|
мым |
Show |
Вызывается для того, чтобы отобразить невидимый ком- |
|
понент |
Focus |
Вызывается для передачи компоненту фокуса ввода (кур- |
|
сора) |
|
События |
Click |
Возникает при «нажатии» на компонент. В зависимости от |
|
компонента, событие может возникнуть по разным причи- |
|
нам. Подробнее событие будет рассмотрено отдельно у |
|
каждого компонента |
Resize |
Возникает при изменении размера компонента |
7
Продолжение таблицы 2
Наименование |
Назначение |
|
MouseDown |
Возникает, соответственно, при нажатии, отпускании |
|
MouseUp |
кнопки мыши над компонентом, щелчке мыши по компо- |
|
MouseClick |
||
ненту, перемещении мыши над компонентом или движе- |
||
MouseMove |
||
нии колесика мыши (у компонента, имеющего фокус) |
||
MouseWheel |
||
|
||
|
|
|
KeyDown |
Возникает, соответственно, при нажатии, отпускании или |
|
KeyUp |
комбинации нажатия и отпускания клавиши клавиатуры у |
|
KeyPress |
||
выбранного (сфокусированного) компонента |
||
|
Операции ввода/вывода в компоненты, во многих случаях, осуществляются с использованием свойств, имеющих текстовое представление, поэтому при работе с данными не строкового типа требуется выполнение преобразований данных. Для преобразования данных могут быть использованы методы классов, некоторые из которых приведены в таблице 3.
Таблица 3 – Методы преобразования данных
Наименование |
Тип |
Назначение |
|
резуль- |
|
|
тата |
|
<объект>.ToString() |
string |
Получение текстового представ- |
|
|
ления объекта |
Convert.To<тип>(<значение>) |
<тип> |
Перевод данных из типа, который |
|
|
имеет <значение> в тип <тип>, |
|
|
например, |
|
|
int i = Convert.ToInt32("5"); |
1.1 Компонент класса TextBox |
|
Использование компонента класса TextBox (строка ввода или многострочный редактор) является простейшим способом организации ввода/вывода данных. Компонент расположен в разделе компонентов «Стандартные эле-
менты управления» ()1.
Наиболее часто используемыми свойствами и методами компонента является2:
1 Расположение и внешний вид иконок компонентов приведены для среды
Microsoft Visual C# 2008 Express Edition.
2 Здесь и далее не указываются свойства, единые для большинства компонентов и приведенные в таблице 1.
8