Я создал usercontrol в своем проекте, и после создания проекта мне нужно поместить его в свою панель инструментов и использовать его в качестве общего элемента управления. но я не могу. UserControl
находится в моем пространстве имен проектов, и я попробовал Choose Item
в меню правой кнопки мыши, но я не нашел способ его добавить.
Как установить UserControl в Visual Studio toolBox
Ответ 1
Я предполагаю, что вы используете VS2010 (это то, что вы отметили как вопрос) У меня возникли проблемы с их добавлением автоматически в панель инструментов, как в VS2008/2005. На самом деле есть возможность остановить заполнение набора инструментов!
Откройте "Инструменты" > "Параметры" > "Конструктор окон" > "Общие"
В нижней части списка вы найдете Toolbox > AutoToolboxPopulate, который по новой установке по умолчанию имеет значение False. Установите его true, а затем перестройте свое решение.
Hey presto, которым они управляют пользователем, решение должно автоматически добавляться в панель инструментов. Возможно, вам придется перезагрузить решение.
Ответ 2
Щелкните правой кнопкой мыши на панели инструментов, затем выберите "выбрать элемент" в контекстном меню. Откроется диалоговое окно с зарегистрированными компонентами. в этом диалоговом окне нажмите "Обзор", чтобы выбрать свою сборку с помощью usercontrol, который вы хотите использовать.
PS. Эта сборка должна быть зарегистрирована ранее.
Ответ 3
Я обнаружил, что пользовательский элемент управления должен иметь конструктор без параметров или он не будет отображаться в списке. по крайней мере, это было верно в vs2005.
Ответ 4
Использование VS 2010:
Скажем, у вас есть проект Windows.Forms. Вы добавляете в проект UserControl (например, MyControl) и разрабатываете его. Теперь вы хотите добавить его в свою панель инструментов.
Как только проект будет успешно создан один раз, он появится в ваших компонентах Framework. Щелкните правой кнопкой мыши панель инструментов, чтобы получить контекстное меню, выберите "Выбрать элементы..." и перейдите к имени вашего элемента управления (MyControl) на вкладке "Компоненты .NET Framework".
Преимущество использования DLL: вы можете редактировать элементы управления в том же проекте, что и ваша форма, и форма будет построена с использованием новых элементов управления. Однако этот проект будет доступен только для этого проекта.
Примечание. Если у элемента управления есть ошибки сборки, разрешите их, прежде чем переходить к содержащимся формам, или у конструктора есть сердечный приступ.
Ответ 5
Есть несколько способов.
-
В исходном проекте выберите "Файл | Экспорт"
Затем выберите ItemTemplate и следуйте указаниям мастера. -
Переместите свой UserControl в отдельную ClassLibrary (и исправьте пространства имен и т.д.).
Добавьте ссылку в библиотеку классов из необходимых ей проектов. Не беспокойтесь о GAC или что-нибудь еще, просто DLL файл.
Я бы не советовал помещать UserControl в обычный ToolBox, но это можно сделать. См. Ответ от @Arseny
Ответ 6
У меня было много элементов управления пользователями, но никто не показывался на панели инструментов, хотя я перестроил это решение и был проверен в диалоговом окне "Выбрать элементы...".
Решение:
- В обозревателе решений я правой кнопкой мыши щелкните файл с нарушением пользовательского контроля и выберите Исключить из проекта
- Перестроить решение
- Щелкните правой кнопкой мыши элемент управления пользователя и выберите "Включить в проект" (при условии, что в обозревателе решений есть "Показать все файлы" ).
Примечание, это также требует включения опции AutoToolboxPopulate. Как следует из ответа @DaveF.
Альтернативное решение: я не уверен, что это работает, и я не мог попробовать его, так как я уже решил свою проблему, но если вы отменили контроль пользователя из диалогового окна "Выбрать элементы...", нажмите "ОК", затем откройте он выполняет резервное копирование и проверяет пользовательский контроль. Это также может работать.
Ответ 7
В моем случае я не мог видеть никаких элементов управления в проекте. Только при щелчке правой кнопкой мыши на toolBox и выборе "Показать все" я видел их, но все же они были отключены...
Изменение типа проекта из приложения Windows в ClassLibrary сделало исправление.
Ответ 8
Насколько я знаю, вы можете перетащить и отменить свой пользовательский контроль в своем текущем проекте на панели инструментов. Проблема в том, что когда вы выбираете другой проект, пользовательский элемент управления ушел. Поэтому я думаю, что вам нужно создать отдельный проект библиотеки управления:
В вашем решении добавьте новый проект, однако в качестве шаблона проекта выберите "Библиотека классов". В проекте THAT добавьте пользовательский элемент управления и сделайте все, что вам нужно. После этого создайте его, и у вас будет файл dll (его можно легко найти в папке bin/debug проектов.)
Вы можете добавить эту dll в свой инструментарий (щелкните правой кнопкой мыши добавить...), и он останется там во всех проектах!
Ответ 9
Базовый qustion, если вы используете дженерики в своем базовом элементе управления. Если да:
скажем, что у нас есть контроль:
public class MyComboDropDown : ComboDropDownComon<MyType>
{
public MyComboDropDown() { }
}
MyComboDropDown не позволит открывать конструктор на нем и не будет отображаться в панели инструментов. Зачем? Поскольку базовый контроль еще не скомпилирован - когда выполняется MyComboDropDown. Вы можете изменить это:
public class MyComboDropDown : MyComboDropDownBase
{
public MyComboDropDown() { }
}
public class MyComboDropDownBase : ComboDropDownComon<MyType>
{
}
Затем, после перестройки и reset toolbox, он должен уметь видеть MyComboDropDown в дизайнере, а также в Toolbox
Ответ 10
Проблема с моим дизайнером была проблемой 32 против 64 бит. Я мог бы добавить элемент управления в окно инструмента после выполнения инструкций в Невозможно добавить элементы управления из 64-разрядных сборок в панель инструментов или использовать их в конструкторах в среде Visual Studio IDE статья MS KB.
Ответ 11
Перекомпиляция сделала трюк для меня!