Пользовательские элементы управления не отображаются на панели инструментов - PullRequest
72 голосов
/ 13 ноября 2008

У меня есть несколько пользовательских элементов управления, которые я создал в ProjectA. У меня есть ProjectB, который имеет форму окна, на которую я хочу поставить элементы управления. Оба эти проекта находятся в одном решении. Там есть ссылка на ProjectA из ProjectB, чтобы он мог «видеть» пользовательские элементы управления.

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

Я пытался восстановить. Я также удалил каталог bin, чтобы принудительно перестроить все.

Как получить VS2008 для заполнения панели инструментов с помощью пользовательских элементов управления?

Ответы [ 29 ]

3 голосов
/ 11 января 2013

Мой элемент управления был общедоступным, он был проверен в диалоговом окне «Выбор элементов панели инструментов», но он все еще не отображался.

Вот что у меня наконец получилось:

Щелкните правой кнопкой мыши где-нибудь на панели инструментов и выберите «Выбрать элементы». Когда я нашел свой предмет, он уже был проверен. Затем я снял галочку с пункта и все в порядке. Затем я снова щелкнул правой кнопкой мыши на панели инструментов и искал свой элемент ... он исчез, поэтому я нажал кнопку Обзор, перешел в папку obj / x86 / debug и выбрал свой exe. Затем элемент был правильно добавлен в панель инструментов.

Я думаю, что это ошибка VS.

2 голосов
/ 22 ноября 2011

Проверьте выходной каталог вашей сборки. Если по какой-либо причине вы создаете свои выходные данные где-то, кроме каталога bin \ проекта, ваши элементы управления не будут отображаться в вашем наборе инструментов.

2 голосов
/ 09 июля 2014

Здесь была моя проблема: Я добавил новый конструктор для моего элемента управления, который принял несколько аргументов, но я не объявил явно пустой конструктор! Панель инструментов может включать только элементы управления, которые имеют пустые конструкторы. В общем, когда вы разрабатываете класс в vb, у него есть пустой конструктор, определенный неявно (то есть вам не нужно его объявлять). НО, как только вы начинаете создавать свои собственные конструкторы, этот пустой конструктор исчезает, поэтому вам необходимо явно переопределить его в своем коде! В любом случае, я понимаю, что большинство опытных vb-кодеров уже знают все это, но, надеюсь, это поможет некоторым новичкам, таким как я :).

1 голос
/ 04 ноября 2009

Что я обычно делаю, это создаю новую вкладку и добавляю exe / dll к этой вкладке ... Не слишком удобно с этим решением из-за времени загрузки и общих хлопот.

Друг показал мне способ ускорить это. Вместо того, чтобы нажимать «Выбрать элементы ...» на панели инструментов и т. Д. Для каждого нового элемента управления, который вы создаете - вы можете создать файл с именем MyCustomControls и там вы можете создать свои собственные элементы управления.

Теперь вам нужно всего лишь сделать «Выбрать элементы ...» и добавить этот файл РАЗ. Если позже вы решите добавить новый элемент управления, создайте его в MyCustomControls, а затем пересоберите.
Тогда ваш набор инструментов получит ваш новый контроль. (Он будет отображаться автоматически при обычной компиляции, если у вас есть AutoToolboxPopulate Я думаю)

Это прискорбно, потому что часто вы хотите разделить классы на «один класс на файл». Ужасно, что вам приходится разрушать архитектуру кода только потому, что VS не хочет делать это по-своему. :)

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

1 голос
/ 09 июня 2012

Если вы уже пробовали возиться с:

  • Инструменты> Параметры> Конструктор Windows Forms> Общие: AutoToolboxPopulate
  • Инструменты> Параметры> Текстовый редактор> XMAL> Разное: AutoToolboxPopulate
  • создал конструктор по умолчанию
  • Создайте свой проект / сбросьте панель инструментов и добавьте вашу вкладку вручную

Тем не менее, вы все еще видите его серым ..

Проверьте длину пути и проверьте символы, используемые в вашем абсолютном пути .

У меня был проект, находящийся в "C: \ Users \ myName \ myCompany \ R & D \ Projects"
И через несколько часов выяснилось, что "R & D" это проблема ..
« & » не позволяло моим элементам управления включаться в моей панели инструментов.

1 голос
/ 08 июня 2012

Ну, у меня ничего не получалось, кроме этого ...

  1. Я создаю новый проект в своем решении, и для этого проекта он работает, поэтому я собирался начать использовать этот
  2. Играя arond, я начал настраивать xml файла csproj, чтобы выяснить, что не так с моим другим проектом в том же решении, а затем сбросил его, так как он не работал
  3. Теперь он снова волшебным образом работает в моем проекте

Не очень хорошее решение, но вы должны попробовать эти шаги

  1. Посмотрите, работает ли оно в новом решении / проекте.
  2. Посмотрите, работает ли он в новом проекте в том же решении
  3. Если # 2 сработал, возможно, сравните файлы .csproj ... каким-то образом мои снова начали работать, когда я делал это (это очень расстраивает).
1 голос
/ 26 мая 2011

Возможно все вышеперечисленное потерпеть неудачу.

Я исправил это, создав новый пользовательский элемент управления (TestControl), и он вызвал Visual Studio волшебным образом добавить вкладку + элементы управления моего проекта обратно в панель инструментов. Тогда я просто удалил контрольный контроль.

Между прочим, это случилось со мной после недавней установки автоматического обновления Windows VS 2008.

1 голос
/ 22 марта 2013

Если вы все еще не можете найти, почему ваша панель инструментов vstudio не заполнена пользовательскими элементами управления. Затем вы можете отладить vstudio с другой визуальной студией. Здесь вы можете найти, как .

1 голос
/ 03 июля 2012

Я попал в эту ловушку всего пару часов назад.
У меня есть проект приложения Windows .NET 2.0 с некоторыми пользовательскими элементами управления; это работало нормально. Поэтому я решил заказать мои файлы в подпапках, чтобы сделать мой проект немного чище.
После этого дизайнер Visual Studio 2010 перестал загружать мои формы, и ToolBox больше не отображает мои элементы управления.
Я испугался, переместив исходные файлы в корень проекта, сбросив ToolBox, но ничего не получалось. После этого я вспомнил, что использовал ReSharper «Удалить неиспользуемые ссылки», поэтому я попытался вернуть неиспользованную ссылку , в частности System.Data : проблема решена! : O Я не могу сказать, почему, но это сработало для меня.
Надеюсь, мой опыт может помочь кому-то еще. :)
Пока, Нандо

1 голос
/ 22 октября 2013

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

Также я обнаружил, что специальные символы (например, я использовал #) в пути влияют на отображение элемента управления.

Надеюсь, что это решит проблему.

...