- •Основы программирования на языке с#
- •Структура программы
- •Типы данных в c#
- •Переменные и константы
- •Управляющие конструкции
- •If (условие) действие;
- •Комментарии
- •Int count; // Эта переменная хранит количество элементов
- •Массивы
- •Исключения
- •Среда Visual Studio
- •Общие сведения об основных понятиях платформы .Net Framework
- •Контейнеры: проекты и решения
- •Типы и расширения файлов в Visual Studio для с#
- •Переходы в рамках интегрированной среды разработки
- •Типы окон и операции над ними
- •Элементы управления
- •Панель элементов
- •Окно "Свойства"
- •Создание приложений Windows Forms
- •Операции над проектами Windows
- •В результате откроется окно Сохранить проект.
- •Работа с формами
- •Создание формы Windows Forms
- •Настройка формы
- •Просмотр кода для формы
- •Создание глобальной переменной класса Form
- •Переименование формы
- •Установка расположения форм Windows Forms на экране
- •Выбор начальной формы в приложении Windows
- •Настройка размера формы Windows Forms
- •Добавление фоновых изображений в формы Windows Forms.
- •Отображение модальных и немодальных форм Windows Forms
- •Создание прозрачных форм Windows Forms
- •Изменение границ формы Windows Forms с помощью конструктора
- •Переход между формами
- •Cкрытие и закрытие форм
- •Работа с элементами управления Windows Forms
- •Добавление элементов управления в формы Windows Forms
- •Изменение размера элементов управления в формах Windows Forms
- •Определение текста, отображаемого элементом управления Windows Forms
- •Определение клавиш доступа для элементов управления Windows Forms
- •Добавление элементов управления, для которых не существует пользовательского интерфейса, в формы Windows Forms
- •Закрепление элементов управления в формах Windows Forms
- •Выравнивание нескольких элементов управления в формах Windows Forms
- •Обработка события клавиши на элементе управления
- •Обращение к элементу управления на другой форме
- •Привязка элементов управления в формах Windows Forms
- •Элементы управления
- •Button – кнопка)
- •Надпись – Label
- •Поле ввода TextBox
- •Чтобы выделить текст программными средствами:
- •Панель Panel
- •Таймер Timer
- •Переключатель CheckBox
- •Переключатель RadioButton
- •Группа объектов GroupBox
- •Списки ComboBox
- •Рисунки PictureBox
- •Чтобы задать рисунок программными средствами задайте свойство Image при помощи метода FromFile класса Image, например:
- •Массив рисунков ImageList
- •Программное меню MenuStrip
- •Синхронизация меню на разных формах
- •Создание списка в окне интерфейса mdi с помощью MenuStrip
- •Блокирование доступа к элементам меню ToolStripMenuItem
- •Скрытие объектов ToolStripMenuItem
- •Контекстное меню ContextMenu
- •Привязка контекстного меню к элементу управления.
- •Панель инструментов ToolStrip
- •Строка состояния StatusStrip
- •Размер таблицы
- •Интерфейс таблицы
- •Диалоговые окна OpenFileDialog и SaveFileDialog
- •Работа с цветами ColorDialog
- •Шрифты FontDialog
- •Счетчик DomainUpDown
- •Счетчик NumericUpDown
- •Индикатор процесса ProgressBar
- •Текстовый редактор RichTextBox
- •Элемент управления Windows Forms RichTextBox позволяет записывать отображаемые в нем данные в одном из следующих форматов:
- •Вкладки TabControl
- •Чтобы добавить новую вкладку:
- •Календарь MonthCalendar
- •Браузер WebBrowser
- •Диалоговое окно MessageBox
- •Создание графических объектов
- •Методы класса Graphics
- •Примеры построения графических объектов
- •Кривая Безье
- •Построение треугольника в этом примере создадим код для рисования треугольника. Координаты треугольника создаются случайным образом: Чтобы создать треугольник:
- •Создание графика функции в этом примере создадим код для построения графика функции на интервале .
- •Чтобы построить график функции необходимо:
- •Диаграммы
- •Установка компонента по работе с диаграммами
- •Основные методы по работе с компонентом zedGraphControl
- •Примеры построения диаграмм
- •Создание приложений на языке Visual c# в среде программирования Visual Studio Учебное пособие
- •665709, Братск, ул.Макаренко,40
-
Примеры построения графических объектов
-
Кривая Безье
-
Пусть в проекте создана на форме панель Panel1. На этой панели нарисуем пучок кривых Безье, исходящих из единого центра. Центр пучка совпадает с точкой соприкосновения курсора мыши с панелью. При нажатии левой кнопки мыши пучок появляется. При движении мыши с нажатой левой кнопкой центр пучка перемещается за мышью и кривые перерисовываются. Как только кнопка мыши отпускается – рисунок фиксируется. Двойным щелчком мыши полотно очищается.
Чтобы создать пучок кривых из трех кривых Безье, исходящих из точки соприкосновения курсора мыши с полотном выполните следующие действия:
-
Создайте класс глобальных переменных для объектов: перо, полотно, координаты центра пучка и его концов, индикатора нажатия мыши.
Пример:
public class MyMouse
{ public static int ind; //индикатор нажатия мыши
public static Graphics graph; //полотно
public static Pen MyPen; //перо
public static Point pt, pt1, pt2, pt3;
}
-
Создайте обработчик нажатия мыши, в котором пропишите характеристики пера, инициализацию переменных для координат кривых и полотна. Чтобы отследить положение кнопок мыши в дальнейшем, зададим индикатору мыши значение 1 – «нажата». При движении мыши с нажатой клавишей (со значением индикатора равным 1), кривые будут перерисовываться. При движении мыши с не нажатой клавишей (со значением индикатора равным 0), кривые рисоваться не будут.
Пример.
private void panel1_MouseDown(object sender, MouseEventArgs e)
{ MyMouse.ind = 1;
MyMouse.graph = this.panel1.CreateGraphics();
MyMouse.MyPen = new Pen(Color.Azure, 1);
MyMouse.pt = new Point(); //центр пучка
MyMouse.pt2 = new Point();
MyMouse.pt3 = new Point();
MyMouse.pt1 = new Point();
}
-
Создайте обработчик отжатия мыши, в котором присвойте индикатору мыши значение 0 – «не нажата».
Пример.
private void panel1_MouseUp(object sender, MouseEventArgs e)
{ MyMouse.ind = 0; }
-
Создайте обработчик движения мыши. Если индикатор мыши равен единицы, то необходимо прописать в коде: очистку полотна, координаты центра пучка, и координаты кривых Безье. В качестве трех дополнительных точек кривых Безье используются статические точки, находящиеся на различных границах полотна. Дополнительные точки можно создавать и с помощью датчика случайных чисел.
Пример.
private void panel1_MouseMove(object sender, MouseEventArgs e)
{ if (MyMouse.ind == 1)
{ // Очищаем полотно
MyMouse.graph.Clear(Color.White);
//Считываем координаты мыши и присваиваем их координатам центра
MyMouse.pt.X = e.X; MyMouse.pt.Y = e.Y;
//Задаем цвет первой кривой
MyMouse.MyPen.Color = Color.Blue;
// Задаем дополнительные точки
MyMouse.pt1.X = 0; MyMouse.pt1.Y = 0;
MyMouse.pt2.X = 0; MyMouse.pt2.Y = panel1.Height;
MyMouse.pt3.X = panel1.Width; MyMouse.pt3.Y = panel1.Height;
// Рисуем первую кривую
MyMouse.graph.DrawBezier(MyMouse.MyPen, MyMouse.pt, MyMouse.pt1,
MyMouse.pt2, MyMouse.pt3);
// Вторая кривая
MyMouse.MyPen.Color = Color.Green;
MyMouse.pt1.X = panel1.Width; MyMouse.pt1.Y = 0;
MyMouse.pt2.X = panel1.Width; MyMouse.pt2.Y = panel1.Height;
MyMouse.pt3.X = 0; MyMouse.pt3.Y = panel1.Height;
MyMouse.graph.DrawBezier(MyMouse.MyPen, MyMouse.pt, MyMouse.pt1,
MyMouse.pt2, MyMouse.pt3);
// Третья кривая
MyMouse.MyPen.Color = Color.Red;
MyMouse.pt1.X = panel1.Width/3; MyMouse.pt1.Y = panel1.Height / 2;
MyMouse.pt2.X = 2*panel1.Width/3; MyMouse.pt2.Y = panel1.Height/2;
MyMouse.pt3.X = MyMouse.pt.X; MyMouse.pt3.Y = MyMouse.pt.Y;
MyMouse.graph.DrawBezier(MyMouse.MyPen, MyMouse.pt, MyMouse.pt1,
MyMouse.pt2, MyMouse.pt3);
} }
-
Создайте обработчик двойного щелчка мыши, в котором пропишите команду очистки полотна
private void panel1_MouseDoubleClick(object sender, MouseEventArgs e)
{ MyMouse.graph.Clear(Color.White);
}