
- •Visual Basic .Net
- •Visual Basic .Net
- •Visual c#
- •314 Создание элементов управления с помощью .Net Framework Глава 7
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •2. В окне New Project выберите шаблон Windows Application, назовите новый про-
- •3. В меню Project выберите команду Add New Item — откроется одноименное диа-
- •4. В диалоговом окне Add New Item выберите Custom Control, назовите новый эле-
- •5. В окне Solution Explorer щелкните правой кнопкой элемент управления Pretty-
- •1. В окне редактора кода поместите в начало кода следующие операторы, импор-
- •Visual c#
- •Visual Basic .Net
Visual Basic .Net
Этот пример предполагает наличие оператора Imports System.Drawing
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
Dim aBrush As New SolidBrush(Color.Red)
Dim clientRectangle As New Rectangle(New Point(0,0), Me.Size)
pe.Graphics.FillEllipse(aBrush, clientRectangle)
End Sub
Visual c#
// Этот пример предполагает наличие оператора Imports System.Drawing
protected override void OnPaint(PaintEventArgs e)
{
Brush aBrush = new SolidBrush(Color.Red);
Rectangle clientRectangle = new
Rectangle(new Point(O.O), this.Size);
e.Graphics.FillEllipse(aBrush, clientRectangle);
При изменении размеров элемента управления автоматически изменяется раз-
мер ClipRectangle, но повторная прорисовка этого элемента управления требуется
не всегда. Чтобы при изменении размеров элемента управления он каждый раз про-
рисовывался заново, вызовите в его конструкторе методом Control.SetStyle и уста-
новите флаг Resize Redraw в true, как показано в следующем примере:
Visual Basic .Net
SetStyle(ControlStyles.ResizeRedraw, True)
Visual c#
SetStyle{ControlStyles.ResizeRedraw. true);
Чтобы в любое время перерисовать элемент управления вручную, достаточно
вызвать метод Refresh:
Visual Basic .Net
Refresh()
Visual c#
RefreshQ;
> Как создать формируемый элемент управления
1. Объявите класс, производный от класса Control.
2. Добавьте в метод OnPaint код, визуализирующий элемент управления.
3. Реализуйте все нестандартные возможности, необходимые вашему элементу
управления.
Резюме
• Все элементы управления являются прямыми или косвенными потомками клас-
са Control, предоставляющего им поддержку обработки событий клавиатуры и
мыши, а также набор свойств, общих для всех элементов управления.
• Существует три типа нестандартных элементов управления: производные, со-
ставные и формируемые.
• Производные элементы управления создают путем наследования от класса стан-
дартного элемента управления Windows Forms, при этом новый элемент управ-
ления сохраняет облик и функциональность базового класса.
• Составные элементы управления инкапсулируют один или несколько стандарт-
ных элементов управления Windows Forms и объявляются на основе класса
UserControl. Их вложенные элементы управления по умолчанию закрыты и не
доступны в период выполнения, если не открыть к ним доступ, изменив значе-
ние свойства Modifiers.
• Разработка формируемых элементов управления требует больше всего времени.
Эти элементы управления являются потомками класса Control, который не пре-
доставляет никакого интерфейса. Поэтому разработчик отвечает не только за
реализацию функциональности элемента управления, ни и за написание кода,
выполняющего его прорисовку.
330 Создание элементов управления с помощью .NET Framework Глава 7
Занятие 3. Решение типичных задач, связанных
с разработкой элементов управления
При разработке любых типов элементов управления возникают различные задачи,
одни чаще, другие реже. На этом занятии вы научитесь решать типичные задачи,
сопутствуюшие разработке элементов управления.
Изучив материал этого занятия, вы сможете:
•/ добавить свой элемент управления на инструментальную панель Toolbox;
s назначить своему элементу управления значок для отображения на
панели Toolbox;
s отладить созданный элемент управления;
•/ определить политику лицензирования своих элементов управления;
s просматривать элемент управления с помощью Internet Explorer.
Продолжительность занятия - около 20 минут.
Добавление элементов управления на панель Toolbox
Удобно, когда собственные элементы управления всегда под рукой. Чтобы сделать
их доступными при разработке любых проектов и упростить работу с ними, добавь-
те их на инструментальную панель Toolbox, откуда их в любое время можно перета-
щить на форму.
Эту задачу позволяет решить команда Customize Toolbox, доступная через кон-
текстное меню панели Toolbox. Щелкните правой кнопкой панель Toolbox и выбе-
рите команду Customize Toolbox, чтобы вызвать диалоговое окно Customize Toolbox.
В нем найдите и выберите файл с элементом управления, который нужно добавить
на панель Toolbox.
> Добавление элемента управления на инструментальную панель Toolbox
1. Щелкните правой кнопкой мыши панель Toolbox и выберите команду Customize
Toolbox — откроется одноименное диалоговое окно.
2. Перейдите на вкладку .NET Framework Components и щелкните кнопку Browse,
чтобы вызвать диалоговое окно File.
3. Откройте папку с DLL- или ЕХЕ-файлом, в котором находится требуемый эле-
мент управления. Выделите нужный файл и щелкните кнопку Open.
4. Убедитесь, что выбранный элемент управления добавлен к списку диалогового
окна Customize Toolbox и щелкните ОК — элемент управления появится на па-
нели Toolbox.
Назначение значка элементу управления
Visual Studio .NET предоставляет значок для отображения нестандартных элемен-
тов управления, добавленных на панель Toolbox, но можно назначить для этой цели
и собственное растровое изображение. Далее подробно рассказано, как это сделать,
Значок для отображения на панели Toolbox назначают с помощью класса ToolboxBitmapAttribute
— специализированного атрибута, предоставляющего метаданные
элемента управления. Он позволяет назначить элементу управления растровое изоб-
Занятие 3 Решение типичных задач 331
ражение размером 16x16 пикселов либо задать значок по значению Type (type).
В последнем случае элементу управления присваивается значок, принятый для
объекта данного типа.
Атрибут ToolbaxBitmapAttribute входит в объявление класса элемента управления,
В Visual Basic .NET его заключают в угловые скобки (<>) и помещают в одной стро-
ке с объявлением класса, перед собственно объявлением. В Visual C# этот атрибут
заключают в квадратные скобки и также располагают в строке объявления класса
элемента управления, перед самим объявлением.
>• Как назначить элементу управления значок, указав файл с его изображением
Укажите файл с изображением значка при помощи атрибута ToolboxBitmapAttribute: