- •Графический интерфейс пользователей
- •Объектная модель программы
- •Основной элемент графического интерфейса – окна (windows)
- •Отношения между окнами
- •Типы окон
- •Программирование графического интерфейса (gui)
- •Содержание окна
- •Контекстное меню (ContextMenuStrip)
- •Библиотека api функций для рисования gdi32.Dll
- •Основной класс рисования Graphics
- •Основные методы класса Graphics
- •Получение объекта Graphics
- •Событие Paint
- •Выполнение рисования
- •Система координат. Система координат и единиц измерения
- •Классы для описания геометрических объектов
- •Операции с изображениями
- •Курсор мыши
- •Основные события устройства «мышь»
- •Размер окна
- •Свойство Anchor
- •Компоненты
- •Элементы управления для работы с принтером – Printing
- •Автоматизация создания программы
- •Окно списков ListBox
- •Коллекция элементов ListBox
- •Комбинированные окна ComboBox
- •Элемент CheckedListBox
- •Класс PictureBox
- •Элемент управления WebBrowser
- •Элемент управления ProgressBar
- •Элемент NumericUpDown
- •Подсказки – ToolTip
- •Процессы и потоки
- •Виды многопоточности:
- •Преимущества многопоточности
- •Случаи использования многопоточности:
- •Потоки в с#
- •Основные статические свойства:
- •Недостатки многопоточности
- •Методы управления потоками
- •Свойства потока.
- •Приоритеты потоков
- •Передача данных в ThreadStart
- •Управление потоками
- •Ресурсы, требующие синхронизации:
- •Простейшие методы блокировки.
- •Оператор lock
- •Класс Interlocked
- •Класс Monitor
- •Классы ManualResetEvent и AutoResetEvent
- •Атрибут [Synchronization]
- •Константы:
- •Минимально необходимые действия для использования BackgroundWorker:
- •Чтобы добавить отображение выполнения операции:
- •Чтобы иметь возможность отмены операции:
- •Задачи (класс Task)
- •Статусы задачи
- •Применение идентификатора задачи
- •Методы ожидания завершения задачи
- •Класс TaskFactory
- •Работа с данными в задаче
- •Вложенные задачи.
- •Механизм отмены задач.
- •Создание продолжения задачи
- •Шаблоны параллелизма Parallel
- •Метод For()
- •Досрочный выход из цикла
Автоматизация создания программы
Шаблон проекта
Создает минимально требуемый для программы определенного типа набор файлов
Заполняет файлы текстом простейшей программы
Конструктор - дизайнер формы
В визуальном режиме позволяет добавлять элементы управления к форме и задавать начальные значения их свойствам
На основе действий пользователя автоматически генерируется код программы
Инструменты
Windows Forms Designer «Конструктор форм Windows» - специальные подсистемы в Visual Studio для работы с инструментами визуальной разработки.
Набор элементов управления (Toolbox)
Форма – контейнер для размещения элементов управления
Окно Properties для работы со свойствами элементов управления в режиме проектирования (design mode)
Окно c набором элементов управления «Toolbox»
Содержит все элементы управления, которые могут быть размещены на форме
Все элементы разделены на группы
Позволяет выбрать нужный элемент управления и перетащить его на форму
Окно свойств «Properties»
Позволяет выбрать свойство, посмотреть значение и задать новое значение.
Работа дизайнеров
В Visual Studio имеется несколько визуальных проектировщиков форм (visual forms designers)
Основные операции:
«Перетащить и уронить» (“drag-and-drop”) на форме элемент управления
Перемещение элементов управления на форме (перетащить) и выбор их размеров
Задание свойств элементов управления в окне Properties
Назначение обработчиков событий для элементов управления
Дизайнеры предназначены для формирования частей программы на основе интерпретации действий программиста с инструментами
Добавление элемента управления на форму – вставка объекта соответствующего класса в класс формы
Размещение и изменение размеров – задание свойств созданных объектов
Задание параметров элемента управления – присвоение значений свойствам созданных объектов.
Задание обработчиков событий для элементов управления – создание методов для обработки событий и присвоение их соответствующим делегатам классов элементов управления.
Описание отдельных типов ЭУ
Класс меток – Label
Предназначен для вывода текста на форму
Основные свойства: Text, Font, ForeColor.
Класс меток-ссылок LinkLabel
Свойство
LinkArea
Links
LinksData
bool LinkVisited
bool LinkVisited
LinkColor
VisitedLinkColor
ActiveLinkColor
Событие
LinkClicked
Класс кнопок – Button
Элемент для сообщения о щелчке
Левая клавиша мыши
Клавиша пробел на клавиатуре
Основное событие:
Click
Класс флажков – CheckBox
состоит из маленького прямоугольника и текстовой строки
основные свойства
bool Checked (get/set) – по умолчанию false
bool AutoCheck (get/set) – по умолчанию true
Appearance (get/set) – Normal, Button
основное событие – изменение состояния
CheckedChanged
Класс переключателей –RadioButton
для выбора из группы опций
Объединяются в группы (элемент GroupBox) в которых выбран может быть только один переключатель
Основные свойства
bool Checked (get/set)
bool AutoCheck (get/set)
Основное событие
CheckedChanged (изменение состояния)
Текстовые поля – TextBox
для ввода текста в программу
основные свойства
string Text (get/set)
int MaxLength(get/set)
int TextLength (get)
string[] Lines (get/set)
bool Multiline (get/set) (по умолчанию false)
основное событие
TextChanged
имеет smart tag (задать Multiline)
Методы текстового поля
bool Modified (get/set)
void Undo()
void Сut()
void Copy()
void Paste()
void Clear()
Элемент RichTextBox
Поддерживает форматированный текст (rich text), в котором могут применяться разные шрифты, цвета, отступы абзацев и табуляция.
Может импортировать и экспортировать текст в формате RTF (Reach Text Format)
Свойства
string Rtf (get/set) задать или получить текст в формате RTF
Методы
LoadFile
SaveFile
Элемент MaskedTextBox
Улучшенный элемент TextBox
Свойство
string Mask (get/set) – шаблон вводимых данных
Окно списков ListBox
Часто используется в тех же целях, что и группа переключателей (RadioButton) – чтобы пользователь мог выбрать один элемент из нескольких.
Занимает меньше место на форме и позволяет выбирать несколько элементов.
Имеет свойства
Коллекция Items
Items[индекс] (get/set)
Items.Add(object), Remove(object), Clear(), Count
int SelectionMode (None -0; One – 1; MultipleSimple - 2)
bool Sorted (get/set)
int SelectedIndex = 0;
object SelectedItem (get/set)
