* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Принципы создания элементов управления
8 февраля 2009

Все элементы управления .NET Framework являются прямыми или косвенными по-
томками класса Control и наследуют от него базовый набор низкоуровневой функ-
циональности, необходимой всем элементам управления. Например, Control предо-
ставляет код для обработки данных, введенных пользователем с помощью клавиа-
туры и мыши, а также код, взаимодействующий с ОС. Кроме того, классы элемен-
тов управления получают от своего предка набор свойств, методов и событий, об-
щих для всех элементов управления. Однако базовый класс не передает своим по-
томкам ни специфических функций, ни кода, формирующего интерфейс элемента
управления.
Основных подходов к созданию элементов управления три:
• наследование от существующих элементов управления;
• объединение стандартных элементов управления в группы;
• написание нестандартных элементов управления «с нуля».
Наследование от существующих элементов управления
Проще всего создать новый элемент управления, объявив его на основе существу-
ющего. Созданный таким образом элемент управления не только сохраняет всю
функциональность базового компонента, но и позволяет дополнить ее новыми воз-
можностями.
Помимо функциональности, производный элемент управления унаследует от
своего предка вид интерфейса. Например, элемент управления, производный от
Button, внешне не отличается от обычной кнопки. Это освобождает от сощания
интерфейса для производных элементов управления, но при необходимости это
можно сделать.
Большинство элементов управления Windows Forms, если они не определены с
ключевым словом Notfnheritable (sealed), могут служить базовыми классами для но-
вых элементов управления. Например, это позволяет создать новый элемент управ-
ления TextBox с встроенным кодом для проверки значения поля или PictureBox.
поддерживающий установку пользователем фильтров для отображаемых в нем изоб-
ражений. Наследование также позволяет создавать элементы управления, функци-
онально идентичные базовому элементу управления, но отличающиеся по внешне-
му виду. Пример — нестандартная кнопка, которая отличается от традиционной
прямоугольной кнопки круглой формой.
Объявление новых элементов управления при помощи наследования считается
простейшим способом их создания и требует минимальных затрат времени. Этот
подход оптимален, если требуется передать большинство или все возможности су-
ществующего элемента управления Windows Forms новому элементу управления,
добавив лишь несколько нестандартных функций. Данный способ удобен и в тех
случаях, когда требуется изменить облик элемента управления, сохранив его функ-
циональность. Если же требуется создать элемент управления с кардинально иной
функциональностью, не следует объявлять его на основе существующего; к этом
случае применяются способы, описанные в следующих разделах.
Наследование от класса UserControl
Иногда функциональности одного элемента управления недостаточно для решения
поставленных задач. Предположим, вам требуется элемент управления, поддержи-
вающий связывание с источником данных и отображающий имя, фамилию и но-
мер телефона в элементах управления TextBox. Можно добавить к форме соответ-
ствующий код, но рациональнее создать новый элемент управления, содержащий
несколько текстовых полей. Это особенно удобно, когда подобные возможности
требуются нескольким приложениям. Элементы управления, образованные объе-
диненными в группу стандартными элементами управления Windows Forms, назы-
ваются пользовательскими или составными.
Составные элементы управления объявляют на основе класса UserControl. пре-
доставляющего базовую функциональность, которую можно расширить путем до-
бавления свойств, методов, событий и других элементов управления. Дизайнер со-
ставных элементов управления позволяет размещать на их поверхности стандарт-
ные элементы управления Windows Forms и добавлять код, реализующий специфи-
ческие возможности. Таким образом, пользователь может создавать новые элемен-
ты управления, объединяя стандартные элементы управления Windows Forms в ло-
гические группы.
При разработке графического интерфейса пользовательских элементов управ-
ления доступны не все возможности, но разработчику, как правило, достаточно
лишь настроить и правильно расположить стандартные элементы управления.
Создание пользовательского элемента управления не всегда простая задача -
это зависит от требований к функциональности нового компонента. Способ, опи-
санный в этом разделе, удобен для создания новых компонентов, сочетающих фун-
кциональность стандартных элементов управления и нестандартные возможности.
Наследование от класса Control
Если требуется более сложный интерфейс или возможности, которые не удается
реализовать с применением составных и производных элементов управления, об-
ращаются к созданию формируемых элементов управления. Формируемые элемен-
ты являются прямыми потомками Control-— базового класса всех элементов управ-
ления. Класс Control передает «по наследству* большой объем функциональности,
общей для всех элементов управления, например поддержку взаимодействия с мы-
шью и общие события (например, Click), а также облегчающие работу с элементами
управления свойства, такие, как Font, ForeColor, BackColor, Visible и т.д.
Тем не менее класс Control не предоставляет производным от него элементам
управления никаких специальных возможностей. Всю логику, необходимую для
решения специфичных задач данного элемента управления, должен реализовать
разработчик. Хотя класс Control предоставляет значительную часть свойств, опре-
деляющих облик интерфейса, разработчику придется самостоятельно написать весь
код графического интерфейса элемента управления.
Создание формируемых элементов управления требует больше всего времени и
усилий от программиста, поскольку на его плечи ложится не только реализация не-
стандартных возможностей данного элемента управления, но и создание его гра-
фического представления, что может отнять массу времени. Формировать элемен-
ты управления самостоятельно следует, только если требуется сложная форма либо
функциональность, которую не предоставляет ни один другой тип элементов упра-
вления.
Добавление членов к элементам управления
Процедура добавления свойств, методов, полей и событий к элементам управления
не отличается от добавления членов к обычному классу. Члены классов элементов
управления разрешается объявлять с любым подходящим уровнем доступа, чтобы
сделать их доступными форме, на которой размещен элемент управления.
Открытые свойства, добавленные к элементам управления в период разработки,
автоматически отображаются в окне Properties, где их может отредактировать и на-
строить любой пользователь. Если вы не хотите, чтобы свойство отображалось в
окне Properties, добавьте к его объявлению атрибут Browsable и установите его в false.
Вот как это делается:
Visual Basic .NET
<System.ComponentModel.Browsable(False)>
Public Property StockNumber() As Integer
Реализация свойства опущена.
End Property
Visual C#
[ System. ComponentModel. Browsable( false)]
public int StockNumber
{
// Реализация свойства опущена.

Теги: .NET

Статьи по теме:

Перегрузка членов
Blend PDF with Silverlight
Вызов функций Windows API
Реализация свойств
Подключение класса DoughnutMachine к пользовательскому интерфейсу
Создание проекта установочной программы
Программа сертификации специалистов Microsoft
Редактор типов файлов
Развертывание приложений с помощью XCOPY
Работа с фокусом ввода
Делегаты
Отображение текста
Массивы
Специальные возможности и элементы управления Windows Forms
Использование провайдеров дополнительных свойств
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Принципы создания элементов управления. Регион сайта: Москва и Санкт-Петербург