- •Тверской государственный технический университет
- •Создание пользовательских компонент.
- •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.2. Создание составных элементов управления
Пользовательские, или составные, элементы управления объединяют нестандартные возможности с функциональностью стандартных элементов управления Windows Forms, позволяя быстро создавать новые элементов управления. Пользовательский элемент управления состоит из одного или нескольких стандартных элементов управления, объединенных в группу. Дизайнер UserControl предназначен для добавления к составным элементам управления дочерних элементов управления, также называемых вложенными. На рис. 7-1 показан дизайнер UserControl, в котором открыт составной элемент управления с парой вложенных кнопок и текстовым полем.
Рис.7.1. Дизайнер UserControl.
Разработчик может написать собственный код для обработки событий, генерируемых вложенными элементами управления. Предположим, что вам требуется создать пользовательский элемент управления, который состоит из двух текстовых полей и надписи. При изменении значений любого из текстовых полей этот элемент управления должен автоматически складывать их и отображать сумму в надписи. Подобную функциональность удается реализовать, переопределив методы ОnKeyPress вложенных текстовых полей следующим образом:
// Для события KeyPress элемента управления TextBox2
// нужно создать аналогичный обработчик.
protected override void OnKeyPress(object sender, KeyPressEventArgs e)
{
// Проверить, является ли нажатая клавиша цифровой.
if (char.lsNumber(e.KeyChar) == false)
{
e.Handled = true;
Label.Text = (int.Parse(TextBox1.Text) +int.Parse(TextBox2.Text)).ToString();
}
}
Вложенные компоненты составных элементов управления считаются закрытыми. Поэтому ни один разработчик, которому случится работать с вашим элементом управления, не сможет изменить такие свойства его вложенных элементов управления, как цвет, форма и размер. Чтобы разрешить другим разработчикам изменять свойства вложенных элементов управления, сделайте их доступными через свойства объекта составного элемента управления. Рассмотрим составной элемент управления с вложенной кнопкой (Button1). Чтобы предоставить доступ к свойству BackColor объекта Button1, создайте, например, для него свойство-оболочку у объекта элемента управления, как показано ниже:
public color ButtonColor
{
get { return Buttonl. BackColor; }
set { Buttonl. BackColor = value; }
}
Чтобы предоставить доступ к вложенному элементу управления, измените его свойство Modifiers. Это возможно только через окно Properties в период разработки, поскольку в период выполнения оно не существует, Свойство Modifiers позволяет задать любой уровень доступа, который применяется к соответствующему вложенному элементу управления.
Как создать составной элемент управления
1. Объявите класс, производный от UserControl.
2. Вызовите дизайнер UserControl и добавьте с его помощью вложенные элементы управления Windows Forms, после чего соответствующим образом настройте их.
3. При необходимости сделайте доступными свойства вложенных элементов управления.
4. Реализуйте нестандартные возможности, необходимые составному элементу управления.