ЛР3 С#1 Линейные и разветвляющиеся алгоритмы
.pdfРисунок 21 – Результат работы приложения Шаг 9. Полностью остановите работу приложения (закройте окно
приложения). А затем закройте и решение (Меню Файл -> Закрыть решение). При этом Visual Studio откроет диалоговое окно Выберите действие.
Задание 3 выполнено!
2.5 Свойства формы и управляющих элементов
C# является языком объектно-ориентированного программирования
(ООП). ООП – это методика разработки программ, в основе которой лежит понятие объекта. Это существенно отличает C# и другие объектно-
ориентированные языки (Java, Python и др.) от языков процедурного программирования, в которых программа представляет собой последовательность команд, определяющих алгоритм решения задачи и преобразующих содержимое памяти от исходного состояния к результирующему.
Объект – это некоторая структура, соответствующая объекту реального мира, его поведению. Задачи, решаемые с использованием методики ООП,
21
описываются в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними.
Взаимодействие программных объектов между собой и их изменения описываются с помощью программного кода.
Однако любой объект является экземпляром класса. Классы объектов являются «шаблонами», определяющими наборы свойств, методов и событий, по которым создаются объекты. Объекты создаются с помощью ключевого слова new.
Например, кнопка button1, которая использовалась при создании приложения в предыдущем задании, является экземпляром класса Button. В
файле Form1.Designer.cs в строке
this.button1 = new System.Windows.Forms.Button();
был создан объект button1 класса Button с помощью ключевого слова new.
Здесь ключевое слово this представляет указатель на текущий объект данного класса (используя this рамках класса Form1, мы указываем, что кнопка button1 относится к классу Form1). Ключевое слово this здесь можно опустить.
Также здесь используется полное имя класса System.Windows.Forms.Button,
поскольку в файле Form1.Designer.cs не было подключено соответствующее пространство имён (не была использована соответствующая директива using в начале файла).
В программировании объект следует понимать как некоторую сущность, представляющую собой набор полей (свойств), методов и событий. Поля при этом можно рассматривать как аналог переменной,
которая может иметь некоторое значение (например, текст, отображаемый в текстовом поле). Свойство – это расширение понятия поле, связанное реализацией принципа инкапсуляции. Метод можно рассматривать как функцию или процедуру, то есть последовательность команд. Событие – как сообщение, возникающее при выполнении определённых условий (например,
нажатие на кнопку, начало либо завершение некоторого метода и т.п.)
22
Далее рассмотрим основные управляющие элементы, используемые при разработке интерфейсов оконных приложений, а также их свойства,
методы и события.
Form (экранная форма) – макет окна разрабатываемого приложения:
Основные свойства класса Form:
Свойство |
Описание |
||
|
|
|
|
Name |
Имя формы |
||
|
|
|
|
BackColor |
Цвет фона формы |
||
|
|
|
|
Text |
Заголовок окна формы |
||
|
|
|
|
Font |
Атрибуты шрифта для всех компонентов формы |
||
|
|
|
|
Основное событие класса Form: |
|||
|
|
|
|
|
|
|
Возникает при загрузке формы. В событийной процедуре |
Load |
|
||
|
|
|
Form1_Load обычно задают начальные параметры проекта. |
|
|
|
|
Основные методы класса Form: |
|||
|
|
|
|
Hide |
Скрыть форму |
||
|
|
|
|
Show |
Показать форму |
||
|
|
|
|
|
|
|
|
|
|
|
|
Label (надпись) – элемент, используемый для нанесения надиси.
Основные свойства класса Label:
Свойство |
Описание |
|
|
Name |
Имя объекта Label |
|
|
Text |
Заголовок надписи, выводимой на экран |
|
|
Font |
Шрифт, используемый для отображения текста |
|
|
Visible |
True – надпись видна, False – не видна |
|
|
Основное событие класса Label: |
|
|
|
Click |
Щелчок левой кнопкой мыши на компоненте Label |
|
|
23
TextBox (текстовое поле) – поле, используемое для ввода/вывода
чисел и текста.
Основные свойства класса TextBox:
Свойство |
Описание |
|
|
Name |
Имя объекта TextBox |
|
|
Text |
Текст, отображаемый и редактируемый в строке ввода. |
|
|
Font |
Шрифт, используемый для отображения текста |
|
|
MultiLine |
Если True, то текстовое поле становится |
|
|
|
многострочным |
ScrollBar Наличие или отсутствие полос прокрутки
Основное событие компонента TextBox:
TextChangеd Происходит, когда пользователь изменяет текст
Button (командная кнопка) – элемент, исользуемый для задания реакции на событие.
Основные свойства класса Button:
|
Свойство |
Описание |
|
|
|
|
Name |
Имя объекта Button |
|
|
|
|
Text |
Надпись на кнопке |
|
|
|
|
Visible |
True – кнопка видна на форме, False – невидна |
|
|
|
|
Enabled |
True – кнопка активна, False – неактивна. |
|
|
|
|
Основное событие класса Button: |
|
|
|
|
|
Click |
Происходит, когда пользователь щелкает основной (левой) |
|
|
|
|
|
кнопкой мыши на объекте. |
|
|
|
24
PictureBox (графическое поле) – поле, предназначенное для
размещения графических элементов на форме.
Основные свойства класса PictureBox:
Свойство |
Описание |
|
|
|
|
|
|
|
Содержит имя графического |
файла |
с рисунком, имя |
Image |
|
|
|
|
задается с помощью диалогового окна Выбор ресурса |
||
|
|
|
|
|
Задает видимость рисунка на |
экране. |
True – рисунок |
Visible |
|
|
|
|
виден, False – нет. |
|
|
|
|
|
|
Чтобы вставить рисунок в элемент PictureBox необходимо изменить свойство Image: в открывшемся окне Выбор ресурса выбрать опцию
Файл ресурсов проекта, затем нажать на кнопку Импорт и в диалоговом окне выбрать необходимый рисунок. Имя рисунка станет доступным в списке ресурсов проекта (рис. 22), а также отобразится в графическом поле PictureBox на форме.
Рисунок 22 – Диалоговое окно Выбор ресурса
25
RadioButton (Переключатель) – элемент управления,
предназначенный для выбора только одной опции (одного действия) из группы.
Основные свойства компонента RadioButton:
Свойство |
|
Описание |
|
|
|
|
|
Name |
Имя компонента |
||
|
|
|
|
|
|
Имеет значения True (включен) или False (выключен). |
|
Checked |
|
|
|
|
|
По умолчанию имеет значение False. |
|
|
|
|
|
|
|
|
|
|
|
|
|
CheckBox (Флажок) – элемент управления, с помощью которого можно выбирать одну или несколько опций, отмечая их галочкой.
Основные свойства компонента CheckBox:
Свойство |
Описание |
|
|
Name |
Имя компонента |
|
|
|
Имеет значения True (галочка есть) или False (галочки |
Checked |
|
|
нет). По умолчанию – значение False. |
|
|
Panel (Панель) – панель для размещения на ней компонентов.
Используется для размещения групп RadioButton или CheckBox.
Если вы хотите объединить несколько объектов, используя панель, то сначала расположите на форме именно её, только затем добавьте на панель необходимые вам объекты.
26
Общее задание 4
Создайте самостоятельно интерфейс приложения, показанный на рисунке 23 (белый прямоугольник – элемент TextBox, серая пунктирная рамка, в которой расположены элементы RadioButton – это элемент Panel).
Напишите программный код, который при нажатии на кнопку button1
изменяет свойства элементов формы так, чтобы результат работы приложения выглядел как на рисунке 24.
Рисунок 23 – Интерфейс для общего задания 4
Рисунок 24 – Результат работы приложения Шаг 1. Создайте новый проект.
27
Шаг 2. Измените форму, добавляя на неё соответствующие элементы управления.
Шаг 3. Для кнопки button1 создайте обработчик события нажатия на эту кнопку.
Шаг 4. В обработчике button1_Click запишите программный код,
позволяющий изменить свойства элементов управления и самой формы.
Например, для элемента флажок добавьте следующие строки:
checkBox1.Checked = true;
checkBox1.Text = "... для включения какой-то
опции";
Самостоятельно допишите остальной код для других элементов,
используя указанные выше теоретические сведения.
Обратите внимание, что ваш код должен быть написан внутри фигурных скобок:
private void button1_Click(object sender, EventArgs e)
{
// Ваш код должен быть написан здесь
}
Шаг 5. Запустите приложение и убедитесь в правильности его работы.
Задание 4 выполнено!
28
2.6 Основы языка C#
Алфавит – фиксированный для данного языка набор символов (букв,
цифр, специальных знаков и т.д.), которые могут быть использованы при написании программы.
В качестве символов в C# используются прописные и строчные буквы латинского алфавита, десятичные цифры, специальные символы:
+ - |
* |
/ % ! |
& > |
< = |
_ ; # “ ‘ , |
. ? ~ ^ \ |
|||
: [ ] |
| |
{ } ( ) @ |
пробел |
а также составные символы:
!= == <= >=
||&& // /* */
Лексема – единица текста программы, которая при компиляции воспринимается как единое целое и по смыслу не может быть разделена на более мелкие элементы.
В языке С# шесть классов лексем:
-служебные (ключевые) слова,
-пользовательские идентификаторы,
-константы,
-строки (строковые константы),
-операции (знаки операций),
-разделители (знаки пунктуации).
Служебные (ключевые) слова имеют фиксированные начертания и раз навсегда определенный смысл. Например: if, else, for, return, void, switch, do, while, int, float, string, char и т.д.
Идентификаторы пользователя служат для обозначения типов данных, констант, переменных, методов (процедур и функций),
определенных самим пользователем.
29
Правила именования пользовательских идентификаторов:
-Первым символом в имени должна быть либо буква, либо символ подчеркивания, либо символ @.
-Последующими символами могут быть буквы, символы подчеркивания или числа.
-Нельзя применять в качестве имени ключевые слова, которые
имеют для компилятора особый смысл.
Важно: С# регистрозависимый язык, переменная res, Res и RES – это разные
переменные.
Код на С# состоит из ряда операторов, каждый из которых оканчивается символом точки с запятой. В одной строке можно записать несколько операторов, один оператор можно разбить на несколько строк.
Дополнительные пробелы и пустые строки компилятором игнорируются.
С# является языком с блочной структурой, т.е. все операторы относятся к какому-то блоку кода. Блок отделяется от остальной части кода с помощью фигурных скобок { и }, между которыми может содержаться любое количество операторов или вообще ни одного.
Для обозначения комментариев используются символы /* и */, если комментарий занимает несколько строчек, и символы //, если комментарий занимает одну строку.
Например,
/* Это
комментарий */
// Это тоже комментарий
2.6.1Типы данных в C#
Все переменные и константы, используемые в программном коде,
необходимо объявлять, указывая их имена (индентификаторы) и типы хранимых в них данных. Основные типы данных, принадлежащие классу
System.Object, представлены в таблице
30