Собственные атрибуты
Ограничения:
требуется, чтобы атрибут был наследником System.atribute
имена должны завершаться на Atribute
требуется описание допустимого назначения
могут описывать конструкторы с несколькими параметрами
могут описываться публичные поля и свойства
atribute usage:
через этот атрибут можно указать:
для чего используется атрибут
атрибут наследуется при наследовании типа, для которого он описан
Может обладать однократным или многократным применением.
Применяются для определения области описания. Преимущества атрибутов:
расширение документирования кода
широкая область применения
унификация хранения данных
Условные атрибуты:
# define DEBUG
# undef DEBUG
Сохранение атрибута:
представляется последовательность битов
записывается в таблицу метаданных для типа, объявленного в приложении
считывается с помощью Reflection из метаданных и является обыкновенным объектом от класса атрибута
Компиляция:
считывается компилятором
представляется последовательностью битов
записывается в таблицу метаданных для типа, объявленного в приложении
Отражение
Сериализация
Графический интерфейс Windows Forms
WinForms:
библиотека построена на GUI
поддержка концепции быстрой разработки приложений Rapid Application Development (RAD)
компонентно-ориентированная архитектура
управление, основанное на событиях
широкий набор элементов управления
Data-aware компоненты
Компонентная модель .NET описывает:
стандарты по использованию и разработке программных компонентов
жизненный цикл компонентов
Компонентная модель .NET Framework:
определяет правила на создание и использование компонентов .NET
Программные компоненты:
решают специф. задачи
повторно используемые
Программная модель Windows Forms:
Описывает:
файлы, диалоги
контролы
события
жизненный цикл приложения
модель рисования на контроле
управление фокусом ввода и навигаций
Главная нить приложения Windows Forms работает:
постоянно слушает сообщения
при получении сообщение обрабатывается:
определяет контрол к которому относится сообщение
передаёт ему сообщение
контрол или контрол-контейнер реагирует на сообщение
Базовые классы Windows Forms
Библиотека WF описывает совок. базовых классов компонентов управления и контейнеров.
Основные базовые классы:
- Component - компонент .NET
- Control - графич. контрол
- ScrollControl - контрол с поддержкой скроллинга
- ContainerControl – контрол, содержащий другие контролы
Класс Control
- класс System.Windows.Forms.Control является основой любых граф. контролов WF
- его свойства являются общими для всех контролов WF
Важные свойства класса Control
Anchor Dock – задают как размещ. контрол в контейнере
Bounds – зад. размер и позицию контрола - контейнера
Controls – задает коллекцию влож. контролов
CanFocus – опр. фокус
Variables – возможность контрола
KeyDow.KeyUp – при нажатии клавиш
Move – перемещение контрола
Прорисовка на контроле
- при перекрытии контролов
- при смене активности
- при изменении размера или позиции
2 этапа прорисовки:
Invalidate() – подготовка к прорисовке весь контур или его часть и отпр. сообщ. Перерисовать
Update() – обрабатывает сообщ. перерисовать получ. от Invalidate() и обновляет указ. графический участок
Основные классы Windows Forms
Формы и диалоги:
Класс System.Windows.Forms. Form
- форма в GUI прилож.
- в нее можно добавить контролы
Свойства:
FormBorderStyle – указ. тип рамки
Sizable - станд. расшир. рамки
FixedDialog- диалог с фиксир. размерами
Основные контролы:
TextBox- поле для ввода текста свойств
Multiline- дает возможность ввода нескольких строк
Управление с пом. событий
EventHandler- простая нотификация
KeyEventHandler- событие от клавы
Mouse EventHandler- событие от мыши
Добавление контролов:
form1.controls.Add (button)
редактировать список контролов, определяя месторасположение (последнего контрола в этом списке)
дизайнер WS генерирует автоматически с помощью событий
Дополнительные классы Windows Forms
диалоговые окна
переключатели и списки
меню
панели инструментов
строка состояния
диалоги
Типы приложений Windows Forms
MDI приложения поддерживают работу одновременно с несколькими документами
MDI контейнеры
- содержат др. формы
- зад. с пом. IsMdiContainer=true
MDI формы
- содержатся в контейнере формы MdiParent = <контейнер>
Проверка данных необходима когда требуется не допустить некорректного ввода данных в контрол.
В WF имеются стандартные средства для проверки:
- validating - событие проверки в классе Control
- CancelEvent Args
- ErrorProvider – используется граф. контролами с некорректными данными
Связывание данных (однонаправленно):
Осуществляет автомат. передачу данных между контролом и источником данных.
Простое - связывание контрола с 1 объектом, с 1 элементом списка.
Сложное – связывание контрола с целым списком.
Базовая форма – обыкновенная форма контролы кот. м.б. изменены.
Контрол DataGridView:
визуализирует табличные данные
осуществляет навигацию по строкам и столбцам
позволяет редактировать данные
сильная функциональность
используется вместе с ADO.NET DataSet и DataTable
DataSource – задаёт источник данных
DataMember- задаёт путь к данным в рамках источника
Свойства:
ReadOnly
CaptionVisible
ColumnHeadersVisible
Table Styles
Наследование форм
формы-наследники могут иметь дополнительную функциональность
возможно изменение общих частей на некоторых формах
изменение одного dll – файла может изменить все формы
Класс Graphics
представляет абстрактную поверхность для рисования
рисования в Paint
может создаваться с помощью Control.CreateGraphics()
- требует освобождение через блок finally или с конструкцией using
Создание пользовательских компонентов
пользовательские контролы
создание контрола
хостинг контролов
нити
Drag’n’Drop
файлы конфигурации