- •Предисловие
- •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 Понятие класса?
- •Предметный указатель
- •Список литературы
6.5 Графическая форма представления прямоугольников
Рассмотрим обработчики событий в окне графической формы представления прямоугольников.
Обработчики реализованы на форме 3, изображенной на рисунке 6.9.
Рисунок 6.9 – Окно графической формы представления прямоугольников
Сразу хочется отметить, что дизайн представленной формы долек от совершенства. В коде формы 3 нет ничего того, что для Вас является новым (эта форма добавлена в проект для большего числа форм). Поэтому просто приведем исходный код формы:
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 Form3 : Form
{
public Form3()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Close();
}
private void Form3_Paint(object sender, PaintEventArgs e)
{
int ax, ay, bx, by;
Pen myPen = new Pen(Color.Blue, 2);
Graphics g = e.Graphics;
g.DrawLine(myPen, 0, 100, 200, 100);
g.DrawLine(myPen, 100, 0, 100, 200);
myPen = new Pen(Color.Red, 2);
for (int i = 0; i < 6; i++)
{
if (Form1.a[i, 0] < Form1.a[i, 2]) ax = Form1.a[i, 0];
else ax = Form1.a[i, 2];
if (Form1.a[i, 1] < Form1.a[i, 3]) ay = Form1.a[i, 1];
else ay = Form1.a[i, 3];
bx = Math.Abs(Form1.a[i, 0] - Form1.a[i, 2]);
by = Math.Abs(Form1.a[i, 1] - Form1.a[i, 3]);
g.DrawRectangle(myPen, ax+100, ay+100, bx, by);
}
}
}
}
Еще одна форма проекта «Информация об авторе» также добавлена для демонстрации возможностей многооконного приложения.
Рисунок 6.10 – Окно режима программы «Информация об авторе»
Исходный код формы 4 содержит только обработчик кнопки возврата к 1 форме. Остальное реализовано с помощью свойств элементов формы 4:
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 Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Close();
}
}
}
6.6 Вопросы для самопроверки
1 Что означает сокращение MDI?
2 В каких ситуациях имеет смысл проектировать главную форму как главную кнопочную форму?
3 Какой элемент управления обычно используется для размещения рисунков на форме?
4 Как добавить в проект новую форму с помощью окна Solution Explorer?
5 Как добавить в проект новую форму с помощью режима Project?
6 Чем отличается диалоговое (модальное) окно от обычного окна формы?
7 Каким методом открывается обычное (не модальное) окно формы?
8 Каким методом открывается модальное окно формы?
9 Что делает следующий фрагмент программы:
private void button3_Click(object sender, EventArgs e)
{
Form5 f5 = new Form5();
if (f5.ShowDialog() == DialogResult.OK) k = 0;
} ?
10 Какой элемент управления часто используется для табличной формы представления информации?
