Winforms C# - устаревший проект Visual .NET 2003: пользовательский поставщик расширений не отображается на панели инструментов

Я создал собственный поставщик Extender для применения ко всем моим меткам: класс, который наследуется от Component и реализует IExtenderProvider.

Он правильно компилируется без ошибок. Затем я иду в Toolbox, но он не отображается.

Я перезапустил VS, и он не работает. Также я создал этот класс поставщика расширителя в другой отдельной сборке, скомпилировал его, а затем добавил ссылку на другую сборку, где я хочу использовать его, как описано здесь, но безуспешно, он говорит:

класс должен быть упакован в отдельную сборку из сборки, использующей его.

Есть идеи, что происходит?

1 ответ

Решение

Наконец, я решил следующие шаги:

  1. В отдельной сборке (не той, где вы ее используете) создайте проект библиотеки классов и реализуйте там свой поставщик расширений. Сделайте этот класс наследуемым от System.ComponentModel.Component и реализуйте IExtenderProvider.
  2. После реализации скомпилируйте его. Вы получите свою DLL.
  3. Добавьте ссылку в сборку, где вы ее используете, которая указывает на библиотеку классов, в которой содержится ваш поставщик расширений.
  4. Чтобы сделать вашего провайдера расширителя видимым на панели инструментов, щелкните правой кнопкой мыши и в контекстном меню выберите "Добавить / удалить элементы...", появится диалоговое окно "Настройка панели инструментов".
  5. В диалоговом окне Customize Toolbox вы увидите две вкладки "Компоненты.Net Framework" и "Компоненты COM". В "Компонентах.Net Framework" нажмите на кнопку обзора и перейдите к месту, где находится ваша dll (библиотека классов, содержащая вашего поставщика расширений), и выберите ее.
  6. После этого вы сразу увидите, что ваш поставщик расширителей отображается в списке ".Net Framework Components", выберите его и убедитесь, что он отмечен, и нажмите кнопку "ОК". Вот и все, теперь ваш провайдер расширителей будет отображаться на панели инструментов в группе "Компоненты".
  7. Теперь откройте winform (в режиме конструктора) из вашей сборки, в которую вы хотите вставить ваш поставщик расширений, и перетащите его в форму.
  8. Выберите объект вашей формы, для которого создан ваш поставщик расширений, и перейдите к его свойствам, там вы увидите новые свойства, реализованные в вашем поставщике расширений для этого компонента. Если вы не указали атрибут категории в свойстве поставщика расширителя, он будет показан в категории "Разное" в окне свойств.

Это все.

Кажется, что в более старых версиях Visual Studio, таких как Visual .NET 2003, поставщики расширителей не добавляются автоматически в набор инструментов, и вы должны сделать это вручную. В более новых версиях Visual Studio, таких как 2015 (я проверял), это делается автоматически для вас.

Другие вопросы по тегам