Опубликован: 25.03.2010 | Уровень: для всех | Доступ: платный
Лекция 18:

Пользовательские компоненты

Пробное тестирование компонента

Теперь нужно посмотреть, что у нас на данном этапе получилось. Для этого нужно откомпилировать компонент до уровня DLL и поместить его на пробную форму.

  • Добавьте к решению MySolution новый проект ComponentTest типа приложения, выполнив команду меню File/Add/New Project и настроив мастер согласно рисунка

  • В панели Solution Explorer щелкните правой кнопкой мыши на узле проекта ComponentTest и выполните команду Set as StartUp Project, чтобы сделать новое приложение стартовым

Обратите внимание, что после этой команды оболочка выделила узел проекта полужирным стилем (если он уже не был выделен). В решении только один проект может быть стартовым.

  • Перейдите в режим конструктора форм для формы Form1 файла Form1.cs и откройте панель компонентов Toolbox

Мы видим, что пока панель содержит 9 свитков


Теперь нужно откомпилировать проект MyComponents. Для этого в панели Solution Explorer щелкните правой кнопкой мыши на корневом узле проекта и выполните команду Build


  • Перейдите в режим конструктора форм для формы Form1 файла Form1.cs и откройте панель компонентов Toolbox

Теперь мы видим, что после компиляции в панели Toolbox оболочки появился новый свиток с именем проекта компонента, в котором находится создаваемый компонент FirstComponent. То есть, оболочка сразу стала реагировать на появление нового компонента


  • Поместите компонент FirstComponent на форму Form1, выделите его экземпляр и исследуйте свойства в панели Properties оболочки

Мы видим, что в исполняемом файле программы оболочка автоматически создала экземпляр компонента с дежурным именем firstComponent1. Наряду со свойствами, наследуемыми компонентом от класса Control, в панели свойств отображаются все наши публичные свойства экземпляра компонента, такие, как IntegerProp, StringProp, CharProp, BoolProp, EnumProp. Они обертывают объекты простых значимых типов и оболочка поддерживает их декларативное изменение на этапе проектирования, в том числе, через раскрывающиеся списки. Но сложное свойство SomeObj, которое обертывает объект ссылочного типа, представлено в панели Properties только типом MyCompany.MyComponents.SomeObject.

Это связано с тем, что панель Properties способна представлять и редактировать свойства только как строки. Свойства простых значимых типов она может самостоятельно преобразовывать в строку и обратно, обеспечивая тем самым возможность их редактирования на этапе проектирования. Но со сложными типами, к которым относится класс SomeObject, дело обстоит иначе и на данном этапе оболочка в поле значения свойства-ссылки отображает только полное имя типа объекта.

Максим Филатов
Максим Филатов

Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет:

Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.

 

Как активировать код?

Денис Пашков
Денис Пашков
Россия
Татьяна Ковалюк
Татьяна Ковалюк
Украина, Киев, Киевский политехнический институт, 1974