
- •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.ComponentModel,
' Это атрибут LicenseProvider, указывающий тип применяемого LicenseProvider,
<LicenseProvider(GetType(LicFileLicenseProvider})> Public Class
Widget
Inherits Control
Private myLicense As License
Public Sub New()
' Проверить лицензию и получить ссылку на нее.
myLicense = LicenseManager,Validate(GetType(Widget), Me)
Остальной код конструктора опущен.
End Sub
Это метод Dispose, освобождающий ресурсы, связанные с проверкой лицензии.
Protected Overloads Overrides Sub
Dispose(ByVal Disposing As Boolean)
If Not (myLicense Is Nothing) then
niyLicense.DisposeO
myLicense = Nothing
End If
End Sub
End Class
334 Создание элементов управлений с помощью -NET Framework Глава 7
Visual C#
// Этот пример предполагает наличие оператора Imports System.ComponentModel.
// Это атрибут LicenseProvider, указывающий тип применяемого LicenseProvider.
[LicenseProvider(typeof(LicFileLicenseProvider)}]
public class Widget : System.Windows.Forms.Control
private License myLicense;
public Widget()
// Проверить лицензию и получить ссылку на нее.
myLicense = LicenseManager.Validate(typeof(Widget)T this);
// Остальной код конструктора опущен.
// Это метод Dispose, освобождающий ресурсы, связанные с проверкой лицензии.
protected override void Dispose(bool Disposing)
if (myLicense !- null)
myLicense.Dispose(};
myLicense = null;
}
\
> Реализация управления лицензированием элемента управления
1. Укажите класс LicenseProvider, добавив к объявлению класса атрибут License-
Provider A (tribute.
2. Создайте файл License, требуемый выбранным классом LicenseProvider,
3. В конструкторе элемента управления вызовите метод LicenseManager. Validate для
проверки лицензии.
4. Освободите ресурсы, занятые проверкой лицензии, вызвав метод Dispose элемен-
та управления.
Загрузка элемента управления в Internet Explorer
Любой элемент управления Windows Forms можно загрузить в Internet Explorer. Это
позволяет обогащать HTML-страницы широкими возможностями таких элементов
управления. Из этого раздела вы узнаете, как это проделать.
Чтобы загрузить элемент управления в Internet Explorer, он должен располагать-
ся в кэше глобальных сборок (Global Assembly Cache, GAC) либо в одном виртуаль-
ном каталоге с HTML-страницей, в которой он объявлен.
Примечание Об установке классов в GAC рассказывается в главе 9.
Для объявления элементов управления Windows Forms в HTML-страницах слу-
жит тэг <OBJECT>, который приказывает вставить в страницу компилированный
объект. Тэг <OBJECT> определяет тип загружаемого объекта по его свойству ciassid,
поэтому можно задать загружаемый элемент управления Windows Forms через это
свойство.
Занятие 3 Решение типичных задач ддд
Свойство classid элемента управления Windows Forms состоит из двух частей:
пути к файлу элемента управления и его полного имени, разделенных знаками ≪#≫.
Ниже показан пример тэга <OBJECT>, объявляющего элемент управления с пол-
ным именем ControlLibraryl.myControl, извлекаемый из файла ControlLibraryl.dll,
который расположен в одном виртуальном каталоге с HTML-страницей:
<OBJECT id="myControl"
classid="http:ControlLibrary1.dllflControlLibrary1.myControl
VIEWASTEXT>
</OBJECT>
> Загрузка элемента управления в Internet Explorer
1. Запишите DLL-файл элемента управления в виртуальный каталог HTML-стра-
ницы, в которой он объявлен, или установите его в GAC.
2. Добавьте к HTML-странице тэг <OBJECT> с соответствующим значением classid.
Свойство classid элемента управления включает путь к его DLL-файлу и пол-
ное имя, разделенные знаком ≪#≫.
Резюме
• Чтобы добавить элемент управления на панель Toolbox, щелкните ее правой
кнопкой мыши и выберите из контекстного меню команду Customize Toolbox —
элемент управления появится на панели инструментария Toolbox, ему будет на-
значен значок по умолчанию. Чтобы назначить элементу управления другой зна-
чок, воспользуйтесь атрибутом ToolboxBitmapAttribute.
• Для отладки элемента управления его необходимо сначала скомпилировать и
разместить на форме. Если отлаживаемый элемент управления входит в испол-
няемый проект, для тестирования к проекту необходимо добавить новую фор-
му, в противном случае следует добавить тестовый проект. После этого для от-
ладки элемента управления можно использовать обычные отладочные средства
Visual Studio. Исправив ошибки, необходимо перекомпилировать элемент уп-
равления, чтобы изменения вступили в силу.
• .NET Framework поддерживает модель лицензирования элементов управления.
Чтобы задействовать ее, укажите класс License Provider, добавив к классу элемен-
та управления атрибут Lie File License Provider, затем вызовите метод License Manager.
Validate, чтобы получить ссылку на лицензию. Закончив, освободите ресур-
сы, занятые проверкой лицензии.
• Чтобы загрузить элемент управления в Internet Explorer, объявите его с помо-
щью тэга <OBJECT>. Тэг <OBJECT> проверяет указанное в нем значение свой-
ства classid, чтобы определить загружаемый элемент управления.
336
Практикум 7. Создание нестандартного
элемента управления
Ваша задача— создать нестандартный элемент управления PreityClock,
отображающий на форме красиво оформленные часы. Вы напишете реа-
лизацию и код, визуализирующий этот элемент управления, а также доба-
вите в его конструктор код, инициализирующий свойства этого элемента
управления. В завершение вы протестируете созданный элемент управле-
ния. Решение задач этого практикума находится в папке \Labs\Ch07\
Solution на прилагаемом к книге компакт-диске.
Прежде всего
Для выполнения этого практикума предварительная подготовка не требуется.
Продолжительность практикума - около 30 минут.
Упражнение 1. Создание элемента управления
Сейчас вы создадите нестандартный элемент управления PrettyClock. Он
относится к формируемым элементам управления, поскольку вы объяви-
те его на основе класса Control, самостоятельно напишете код, отвечаю-
щий за визуализацию этого элемента управления, и откроете доступ к
свойствам, управляющим его обликом. В завершение вы добавите таймер,
чтобы наши часы могли служить по прямому назначению.
*• Создание проекта
1. В меню File выберите команду New\Project — откроется диалоговое окно New
Project.