Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание составных элементов управления




Пользовательские, или составные, элементы управления объединяют нестандартные возможности с функциональностью стандартных элементов управления 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 позволяет задать любой уровень доступа, который применяется к соответствующему вложенному элементу управления.




Поделиться с друзьями:


Дата добавления: 2015-07-02; Просмотров: 426; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.