- •Предисловие
- •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.5 Пример первой учебной программы
Рассмотреть пример использования формы для создания приложения, работающего в системе Windows. В качестве первого примера выбрана известная задача вычисления периметра треугольника.
Задача 1.1 В режиме диалога необходимо задать стороны треугольника и вычислить его периметр. После ввода значений сторон треугольника выполнять следующие проверки: все стороны треугольника должны быть больше нуля и сумма любых двух сторон больше третьей. Работу программы сопровождать необходимыми комментариями.
На этапе визуального программирования мы будем использовать три стандартных элемента управления из окна Toolbox: статический текст или метка (Labe1), поле ввода или вывода текста – окно редактирования (TextBox) и командную кнопку (Button):
– статический текст;
– поле ввода или вывода текста;
– командная кнопка.
Метки нужны для размещения поясняющих надписей – четыре метки.
Три поля ввода, одно поле вывода результата и одна кнопка управления.
Весь процесс визуального программирования заключался в перетаскивании необходимых элементов управления из окна Toolbox на форму, и размещении их в определённом порядке. Если это требуется, то с помощью мыши можно отрегулировать размеры и расположение элементов управления, добавленных на форму, а также размеры самой формы.
Обычно окно Toolbox находится
в «свернутом» состоянии. Чтобы его
«развернуть» необходимо левой клавишей
мыши кликнуть на панель Toolbox, раскрыв
ее, и закрепить в определённом месте
экрана с помощью элемента
(кликнуть на него). По окончании работы
с окном Toolbox его можно «свернуть» кликнув
на элементе
.
В процессе визуального программирования необходимо изменять некоторые свойства элементов управления, например, у меток и кнопки было изменено свойство Text в соответствии с рисунком 1.3. Для этого необходимо пользоваться окном Properties, которое изображено на рисунке 1.4.
Рисунок 1.3 Окна программы «Треугольник»
Рисунок 1.4 – Окно Properties для элемента button1
Отличие поля результата от полей ввода в том, что в нем установлено свойство Multiline = true.
Во всех элементах управления использовалось поле Text.
Для получения «пустого» метода – обработчика сообщения о нажатии на кнопку «Ввод» достаточно на этапе визуального программирования дважды кликнуть на эту кнопку. В пустую заготовку обработчика сообщения
private void button1_Click(object sender, EventArgs e)
включим код ввода в режиме диалога значений сторон треугольника и необходимые проверки на их соответствие треугольнику.
Исходный код файла Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
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());
}
}
}
Исходный код файла Form1.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
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;
if (a > 0 && b > 0 && c > 0)
if (a + b > c && a + c > b && b + c > a)
textBox4.Text = "Периметр треугольника = " + p.ToString();
else
{
textBox4.Text = "Одна из сторон треугольника больше суммы двух других Повторите ввод ";
}
else
{
textBox4.Text = "Одна из сторон треугольника больше 0! Повторите ввод ";
}
}
}
}
Среда автоматически формирует богатый список пространств имен. Рассмотрим некоторые из них.
Пространство имен System содержит определение фундаментальных и базовых классов, определяющих типы данных, события, обработчики событий и другие, необходимые в каждом приложении компоненты.
В пространстве имен System.Collections определены классы, реализующие функциональность таких контейнеров, как массивы, списки, словари, хэши и т.п.
Классы пространства System.ComponentModel используются для реализации необходимого поведения компонентов и элементов управления приложения на этапе его разработки и выполнения.
Класс System.Data необходим приложениям, работающим с базами данных посредством интерфейса ADO.NET. Этот интерфейс вы будете рассматривать при изучении баз данных.
Пространство имен System.Drawing необходимо для доступа к интерфейсу графических устройств (Graphics Device Interface, GDI), а точнее, к его расширенной версии GDI+. Классы, определенные в этом пространстве имен, необходимы для рисования в окнах приложений текста, линий, двухмерных фигур, изображений и других графических объектов.
Пространство System.Linq содержит классы, задающие типы, интерфейсы, стандартные операторы запроса.
Пространство имен System.Windows.Forms — в нем определены классы, реализующие поведение оконных форм, составляющих базу оконных приложений Microsoft windows на платформе Microsoft .NET Frameworks.
Реально программе нужны два пространства имен – System и System.Windows.Forms, все остальные пространства имен формируются «на вырост».
После отладки программы все файлы необходимо записать (в меню выбрать действие File->Save All).
Визуальная среда программирования даже для небольшой программы создает более 10 файлов и вложенных папок, пояснение которых уводит читателя в такие дебри работы среды, что ни один из известных авторов книг по программированию на языке C# не отважился дать подробных пояснений, какие файлы и зачем создаются в папках разрабатываемого проекта.
Мы не будем отходить от традиций, отметив только что в папке 1_1_treygolnik, созданной на рабочем столе для первой программы, находится папка WindowsFormsAplication1, в которой еще одна папка с именем WindowsFormsAplication1 и файл проекта программы, вызываемый для редактирования WindowsFormsAplication1.csproj. В очередной папке WindowsFormsAplication1 (как в матрешке) находятся еще три папки bin, obj, Properties и несколько файлов, в том числе файлы с кодом программы – Program.cs и кодом формы – Form1.cs. Здесь же находится ресурсный файл формы Form1, в котором сохраняется внешний вид формы, и файл Form1.Designer.cs, в котором запоминаются значения «свойств» формы и всех элементов управления, размещенных на форме.
Реально для работы со средой разработки Visual Studio .Net нам пока нужен файл кода формы Form1.cs.
Рекомендую, на первых этапах освоения программирования, не «вламываться» в свойства и названия остальных файлов, а ограничится работой с текстом только файла Form1.cs.
