Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лр3_Компоненты.doc
Скачиваний:
3
Добавлен:
01.09.2019
Размер:
761.86 Кб
Скачать

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. Реализуйте нестандартные возможности, необходимые составному элементу управления.