- •Тверской государственный технический университет
- •Создание пользовательских компонент.
- •1. Теоретическая часть.
- •1.1. Общая архитектура компонент.
- •1.2. Основные принципы создания элементов управления
- •1.2.1. Наследование от существующих элементов управления
- •1.2.2. Создание составных элементов управления
- •Как создать составной элемент управления
- •1.2.3. Создание формируемых элементов управления
- •Как создать формируемый элемент управления
- •1.3. Отладка элементов управления
- •1.3.1. Отладка компонентов в режиме разработки.
- •1.3.2. Отладка элемента управления в проекте Windows Forms
- •1.3.3. Отладка элемента управления в проекте библиотеки классов или элементов управления
- •1.4. Добавление элементов управления на панель Toolbox.
- •1.5. Назначение значка элементу управления
- •2.1.2. Программная реализация компоненты.
- •2.1.3. Добавление информации о свойствах.
- •2.1.4. Реакция на изменение свойства.
- •2.1.5. Добавление событий.
- •2.2. Создание 2-го нестандартного элемента управления
- •2.2.1. Описание элемента управления
- •2.2.2. Создание проекта
- •2.2.3. Программная реализация элемента управления.
- •2.2.4. Настройка компонента Timer
- •2.2.5. Тестирование элемента управления
- •2.3. Создание собственного элемента пользовательского интерфейса.
- •3. Задание на лабораторную работу
- •4. Содержание отчета по лабораторной работе
- •Литература:
1.2. Основные принципы создания элементов управления
Все элементы управления .NET Framework являются прямыми или косвенными потомками класса Control и наследуют от него базовый набор низкоуровневой функциональности, необходимой всем элементам управления. Например, Control предоставляет код для обработки данных, введенных пользователем с помощью клавиатуры и мыши, а также код, взаимодействующий с ОС. Кроме того, классы элементов управления получают от своего предка набор свойств, методов и событий, общих для всех элементов управления. Однако базовый класс не передает своим потомкам ни специфических функций, ни кода, формирующего интерфейс элемента управления.
Основных подходов к созданию элементов управления три:
• наследование от существующих элементов управления;
• объединение стандартных элементов управления в группы;
• написание нестандартных элементов управления "с нуля".
1.2.1. Наследование от существующих элементов управления
Проще всего создать новый элемент управления, объявив его на основе существующего. Созданный таким образом элемент управления не только сохраняет всю функциональность базового компонента, но и позволяет дополнить ее новыми возможностями.
Помимо функциональности, производный элемент управления унаследует от своего предка вид интерфейса. Например, элемент управления, производный от Button, внешне не отличается от обычной кнопки. Это освобождает от создания интерфейса для производных элементов управления, но при необходимости это можно сделать.
Большинство элементов управления Windows Forms, если они не определены с ключевым словом Notinheritable (sealed), могут служить базовыми классами для новых элементов управления. Например, это позволяет создать новый элемент управления TextBox с встроенным кодом для проверки значения поля или PictureBox, поддерживающий установку пользователем фильтров для отображаемых в нем изображений. Наследование также позволяет создавать элементы управления, функционально идентичные базовому элементу управления, но отличающиеся по внешнему виду. Пример — нестандартная кнопка, которая отличается от традиционной прямоугольной кнопки круглой формой.
Объявление новых элементов управления при помощи наследования считается простейшим способом их создания и требует минимальных затрат времени. Этот подход оптимален, если требуется передать большинство или все возможности существующего элемента управления Windows Forms новому элементу управления, добавив лишь несколько нестандартных функций. Данный способ удобен и в тех случаях, когда требуется изменить облик элемента управления, сохранив его функциональность. Если же требуется создать элемент управления с кардинально иной функциональностью, не следует объявлять его на основе существующего. В этом случае применяются способы, описанные в следующих разделах.
Таким образом, для того, чтобы создать новую компоненту на основе другой компоненты необходимо:
1. Объявить новый класс элемента управления на основе существующего класса элемента управления.
2. Реализовать все необходимые нестандартные возможности и добавить код, формирующий интерфейс производного элемента управления.