Как поместить элемент управления UserControl в Visual Studio toolBox



Я сделал usercontrol в своем проекте, и после создания проекта мне нужно поместить его в свой набор инструментов и использовать его в качестве общего элемента управления. но я не могу.UserControl в моем пространстве имен проекта, и я пробовал Choose Item в меню правой кнопки мыши, но я не нашел способ добавить его.

1152   11  

11 ответов:

Я предполагаю, что вы используете VS2010 (это то, что вы пометили вопрос как) У меня были проблемы с их автоматическим добавлением в Панель инструментов, как в VS2008/2005. На самом деле есть возможность остановить автоматическое заполнение панели инструментов!

перейдите в меню Сервис > Параметры > конструктор Windows Forms > общие

в нижней части списка вы найдете Toolbox > AutoToolboxPopulate, который при новой установке по умолчанию имеет значение False. Установите его истинным, а затем перестроить решение.

Эй presto они пользовательские элементы управления в вас решение должно быть автоматически добавлено в набор инструментов. Возможно, Вам также придется перезагрузить решение.

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

PS. Эта ассамблея должна быть зарегистрирована раньше.

Я обнаружил, что пользовательский элемент управления должен иметь конструктор без параметров и он не будет отображаться в списке. по крайней мере так было в vs2005.

использование VS 2010:

Допустим у вас есть Windows.Формы проекта. Вы добавляете UserControl (скажем, MyControl) в проект и разрабатываете все это. Теперь вы хотите добавить его в свой набор инструментов.

Как только проект будет успешно построен один раз, он появится в компонентах вашего фреймворка. Щелкните правой кнопкой мыши панель инструментов, чтобы получить контекстное меню, выберите "Выбрать элементы...", и перейдите к имени элемента управления (MyControl) в разделе " компоненты .NET Framework" табуляция.

преимущество перед использованием DLL: вы можете редактировать элементы управления в том же проекте, что и ваша форма, и форма будет построена с новыми элементами управления. Однако контроль будет доступен только для этого проекта.

Примечание: Если элемент управления имеет ошибки сборки, устраните их перед переходом к содержащим формам, или у дизайнера случился сердечный приступ.

У меня было много пользовательских элементов управления, но один отказался показать в Toolbox, хотя я перестроил решение и оно было проверено в Выбрать Элементы... диалог.

устранение:

  1. С Обозреватель Я Щелкните Правой Кнопкой Мыши файл-нарушитель и выбран Исключить Из Проекта
  2. восстановить решение
  3. Правой Кнопкой Мыши пользователя управление и выберите включить в проект (Если у вас есть Показать Все Файлы включен в Обозреватель)

Примечание это также требует от вас AutoToolboxPopulate включено. Как @DaveF ответ предлагает.

альтернативное решение: я не уверен, что это работает, и я не мог попробовать, так как я уже решил свою проблему, но если вы сняли флажок с пользовательского элемента управления Выбрать Элементы... диалоговое окно, нажмите кнопку ОК, затем открыл его обратно и проверил пользовательский элемент управления. Это тоже может сработать.

есть несколько способов.

  1. в исходном проекте выберите Файл / Экспорт шаблона
    Затем выберите пункт ItemTemplate и следуйте указаниям мастера.

  2. переместите свой UserControl в отдельную библиотеку классов (и исправьте пространства имен и т. д.).
    Добавьте ссылку на classlibrary из проектов, которые в ней нуждаются. Не беспокойтесь о GAC или что-то еще, просто DLL-файл.

Я бы не советовал ставить UserControl в обычный набор инструментов, но это можно сделать. Смотрите ответ от @Arseny

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

в своем решении, добавьте новый проект, однако в качестве шаблона проекта выбрать "библиотеку классов". В этом проекте добавьте пользовательский элемент управления и выполните все необходимые действия. Как только это будет сделано, создайте его, и у вас будет файл dll (он может легко найти в папке проектов bin/debug.)

вы можете добавить эту dll в свой набор инструментов (щелкните правой кнопкой мыши добавить...) и он останется там во всех проектах!

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

изменение типа проекта из приложения Windows в ClassLibrary сделало исправление.

основной qustion, если вы используете дженерики в своем Базовом элементе управления. Если да:

допустим, у нас есть управление:

public class MyComboDropDown : ComboDropDownComon<MyType>
{
    public MyComboDropDown() { }
}

MyComboDropDown не позволит открыть конструктор на нем и не будет отображаться в Toolbox. Зачем? Потому что базовый элемент управления еще не скомпилирован - когда выполняется MyComboDropDown. Вы можете изменить это:

public class MyComboDropDown : MyComboDropDownBase
{
    public MyComboDropDown() { }
}

public class MyComboDropDownBase : ComboDropDownComon<MyType>
{

}

чем после перестроения и сброса toolbox он должен иметь возможность видеть MyComboDropDown в конструкторе, а также в Toolbox

проблема с моим дизайнером была 32 против 64 бит проблема. Я мог бы добавить элемент управления в окно инструментов после выполнения инструкций в Не удается добавить элементы управления из 64-разрядных сборок в набор инструментов или использовать в конструкторах в среде Visual Studio IDE MS KB статья.

перекомпиляция сделала трюк для меня!

Comments

    Ничего не найдено.