- •Предисловие
- •1 Среда визуального программирования visual studio.Net
- •1.1 Введение в объектно - ориентированное программирование
- •1.2 Понятие о событийном управлении Windows
- •1.3 Основные окна среды Visual Studio.Net
- •1.4 Основные структурные элементы разработки проекта c#
- •1.5 Пример первой учебной программы
- •2.1 Технология визуального проектирования форм
- •1.6 Вопросы для самопроверки
- •2 Элементы управления
- •2.2 Элементы управления панели Toolbox
- •2.3 Пример использования элементов управления
- •2.4 Вопросы для самопроверки
- •3 Графический интерфейс языка c#
- •3.1 Пространство имен System.Drawing
- •3.2 Класс Graphics
- •3.3 Пример программной реализации
- •3.4 Вопросы для самопроверки
- •4 Использование меню в приложении
- •4.1 Меню программы
- •4.2 Создание инструментальной панели приложения
- •4.3.Вопросы для самопроверки
- •5 Использование диалоговых меню
- •5.1 Обработчики событий для работы с матрицей
- •5.2 Обработчик событий для открытия файла
- •5.3 Обработчик событий для записи в файл
- •5.4 Обработчик событий для работы с текстом
- •5.5 Вопросы для самопроверки
- •6 Многооконные приложения
- •6.1 Создание «кнопочной» главной формы
- •6.2 Добавление новых форм приложения
- •6.3 Обработчики событий главной формы
- •6.4 Табличная форма представления и редактирования значений
- •6.5 Графическая форма представления прямоугольников
- •6.6 Вопросы для самопроверки
- •7. Понятие класса
- •7.1 Понятие класса
- •7.2 Состав класса
- •7.3 Методы класса
- •7.4 Структура объекта
- •7.5 Пример учебной программы
- •7.6 Доступ к полям
- •7.7 Вопросы для самопроверки
- •1 Понятие класса?
- •8 Элементы классов
- •8.1 Конструкторы
- •8.2 Деструкторы
- •8.3 Свойства
- •8.4 Параметр по ссылке this
- •8.5 События класса
- •8.6 Перегрузка операций класса
- •8.7 Вопросы для самопроверки
- •9 Принципы ооп
- •9.1 Понятие инкапсуляции
- •9.2 Понятие наследования
- •9.3 Вопросы для самопроверки
- •10 Принцип полиморфизма
- •10.1 Понятие полиморфизма
- •10.2 Пример статического наследования методов
- •10.3 Пример динамического наследования методов
- •10.4 Вопросы для самопроверки
- •11 Использование интерфейсов
- •11.1 Понятие интерфейса
- •11.2 Синтаксис интерфейса
- •11.3 Использование стандартного интерфейса iEnumerable
- •11.4 Вопросы для самопроверки
- •12 Композиция и коллекция классов
- •12.1 Понятие композиции и коллекции класса
- •12.2 Пример использования композиции и коллекции класса
- •12.3 Некоторые коллекции Framework
- •12.4 Коллекция ArrayList
- •12.5 Вопросы для самопроверки
- •13 Делегаты
- •13.1 Понятие делегата
- •13.2 Описание делегата
- •13.3 Пример использования делегата
- •13.4 Совместимость делегатов
- •13.5 Методы базовых классов делегатов
- •13.6 Вопросы для самопроверки
- •14 События
- •14.1 Понятие события
- •14.2 Некоторые часто используемые события среды Visual Studio.Net
- •14.3 Пример использования стандартных событий классов
- •14.4 Нестандартные события классов
- •14.5 Вопросы для самопроверки
- •Приложение а Ответы на вопросы для самопроверки
- •1 Понятие класса?
- •Предметный указатель
- •Список литературы
1.6 Вопросы для самопроверки
1 Понятие события в работе компьютера?
2 Как система Windows «различает» события?
3 Что делает система Windows, получив информацию о появлении события?
4 Понятие драйвера.
5 Понятие сообщения.
6 Что содержит сообщение?
7 Куда поступают сообщения, получаемые системой Windows от драйверов?
8 Зачем в каждом приложении имеется цикл обработки сообщений поступающих от Windows?
9 Какой метод приложения реализует цикл обработки сообщений поступающих от Windows?
10 Что определяет класс Form?
2 Элементы управления
2.1 Технология визуального проектирования форм
Среда визуального программирования C# .NET включает в себя Windows.Forms.Designer (конструктор или дизайнер форм Windows) – инструмент, позволяющий в интерактивном режиме выполнять визуальное проектирование формы, размещая на ней необходимые элементы управления. Преимущества Windows.Forms.Designer в том, что Вы можете размещать элементы управления на форме в соответствии с Вашим представлением красоты и при этом не думать о конкретных значениях многих свойств этих элементов, например, о свойствах (точнее числовых значениях этих свойств), определяющих их местоположение или размер. Значения большинства свойств задаются автоматически конструктором формы. Однако конструктор формы может помочь Вам до определенного момента, а потом Вам придется писать код программы вручную, попутно разбираясь в том, что для Вас сгенерировал Windows.Forms.Designer.
В Windows приложении (в отличие от консольного приложения) конструктором формы автоматически создаётся несколько классов с расширением .cs, например, класс с именем Form1.cs и класс с именем Program.cs.
Классы в C# синтаксически не являются неделимыми и могут состоять из нескольких частей, каждая из которых начинается с ключевого слова “partal”(частичный). Возможность разбиения описания одного класса на части облегчает работу над большим классом. Каждая часть класса хранится в отдельном файле со своим именем. Например, для примера предыдущей главы, автоматически были созданы два файла Form1 с расширением .cs – Form1.cs и Form1.Designer.cs.
Первая часть класса Form1, хранящаяся в файле "Form1.cs", предназначена для разработчика – именно в ней располагаются автоматически создаваемые обработчики событий, происходящих с элементами управления, код которых создается самим разработчиком. Такая технология программирования, основанная на работе с формами, называется визуальной, событийно управляемой технологией программирования.
Например, фрагмент файла Form1.cs, рассмотренного на предыдущей лекции:
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a,b,c,p;
a = Convert.ToInt32(textBox1.Text);
b = Convert.ToInt32(textBox2.Text);
c = Convert.ToInt32(textBox3.Text);
p = a + b + c;
. . .
Вторая часть класса Form1 находится в файле с именем "Form1.Designer.cs". Эта часть класса заполняется автоматически конструктором формы. Когда мы занимаемся визуальным проектированием формы и размещаем на ней различные элементы управления, меняем их свойства, придаем форме нужный вид, задаем обработчики событий для элементов управления, то конструктор формы транслирует наши действия в действия над объектами соответствующих классов, создает соответствующий код и вставляет его в нужное место класса Form1.
Предполагается (надеемся), что Вы не должны вмешиваться в работу конструктора формы и корректировать эту часть кода класса Form1. Тем не менее, иметь представление о его работе или даже понимать код, созданный конструктором формы иногда очень полезно.
Ниже приведен фрагмент файла Form1.Designer.cs, рассмотренного на предыдущей лекции:
namespace WindowsFormsApplication1
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
. . .
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
. . .
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(174, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Введите сторону треугольника А";
. . . и т.д. всего на 3 страницах.
Класс Program.cs , автоматически создаваемый для нашего проекта, содержит статический метод Main(). При запуске нашей программы система Windows ищет метод Main() и начинает выполнять указания, стоящие в нем. Часто метод Main() называют точкой входа в программу.
Ниже приведен файл Program.cs, примера, рассмотренного на предыдущей лекции:
namespace WindowsFormsApplication1
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
В отличие от консольных приложений, где тело метода Main() изначально было пустым и должно было заполняться разработчиком проекта, в Windows приложениях метод Main() уже заполнен необходимыми указаниями и, как правило, разработчиком не изменяется. Что же делает автоматически созданный метод Main()? Он работает с классом Application библиотеки FCL, вызывая поочередно три статических метода этого класса.
Метод Application.EnableVisualStyles(); представляет компоненты создаваемого приложения в стиле Windows XP.
Метод Application.SetCompatibleTextRenderingDefault(false); говорят, что его назначение понятно из текста.
Метод Application.Run(new Form1()); основной метод класса и обычно он единственный в Main().
Основную работу выполняет метод Run – в процессе его вызова создается объект класса Form1 и открывается форма - визуальный образ объекта, с которой может работать пользователь проекта. После завершения инициализации всех объектов элементов, размещенных на форме, запускается цикл обработки сообщений Windows, и приложение ожидает сообщения от Windows. Пользователю остается вводить данные в поля формы и нажимать на кнопки управления.
Для реализации этапа визуального программирования необходимо кратко рассмотреть назначение элементов управления, расположенных на панели Toolbox.
