Не удалось загрузить элемент панели инструментов. Он будет удален из панели инструментов
У меня есть приложение WinForm
. Я также создал для себя свой User Control
. Все работало нормально. До сегодняшнего дня я получил сообщение об ошибке при попытке добавить его обратно в свою программу (я никогда не удалял его. Visual Studio сделал).
Не удалось загрузить элемент панели инструментов #UserControlName. Он будет удален из панели инструментов.
У меня есть это в моем проводнике решений, но после этой ошибки он исчезает из моей панели инструментов.
Я также получаю предупреждение, в котором говорится:
'# UserControlName' никогда не назначается и всегда будет иметь значение по умолчанию null.
И когда я смотрю на свой код дизайнера, это правда. Но я не сделал ничего с моим дизайнерским кодом. Мой пользовательский элемент управления определен там, но не создан. Как я могу вернуть его?
Имеет ли это отношение к тому, что я изменил свою платформу сборки с x32
на x64
? Если это так, я буду удивлен, потому что после этих изменений программа работала нормально.
Ответы
Ответ 1
В такие моменты вам придется поработать с кодом дизайнера. Пока вы не вносите существенных изменений в код конструктора, вы ничего не должны ломать. Чтобы воспроизвести это безопасно, повторно создайте экземпляр объекта, где создаются другие элементы управления (рядом с верхней частью страницы). Дизайнер должен заполнить пробелы для свойств и т.д.
Это также должно вернуть элемент управления в панель инструментов.
Ответ 2
У меня была такая же проблема в последнее время. Поскольку этот (и любой другой ответ на этом сайте и в Интернете) действительно помог мне, я узнал, как его исправить.
Просто очистите файлы и перестройте решение. Так просто.
Ответ 3
Я страдал от той же проблемы для одного из наших приложений и не мог найти решение. Поэтому я создал пользовательские и пользовательские элементы управления вручную. После повторного поиска в Интернете я наконец нашел, почему дизайнер терпит неудачу для этого конкретного проекта. Ответ в том, что проект 64-битный, а Visual Studio до сих пор не имеет 64-битной версии, он все еще 32-битный. Поэтому разработчик не мог загрузить элементы управления в 64-разрядных приложениях или в библиотеках классов. Прочитайте статью Microsoft об этом. На сайте Visual Studio была статья, но она была удалена. Смотрите ответ в форуме поддержки Visual Studio.
https://social.msdn.microsoft.com/Forums/vstudio/en-US/77e10b58-43cc-4aab-919f-888f14f99571/x64-class-library-of-user-controls?forum=csharpgeneral
Ответ 4
Вам необязательно вставлять пользовательский контроль вручную. У меня была такая же ситуация, и для этого была причина.
В моем случае это не удалось, потому что сборка EXE была скомпилирована в "смешанный режим" с использованием типа поддержки CLR /clr
. После того, как вы изменили его на "только для управления", установив тип /clr:pure
, он сработал.
Подробнее см. мой ответ здесь в SO.
Ответ 5
После многих часов работы с этой проблемой с большим пользовательским элементом управления с небольшими изменениями из предыдущей рабочей копии в исходном элементе управления я скопировал весь код в новое имя и файл управления, и все это сработало.
Это должно было идентифицировать проблемную строку кода, так как отладчик не будет взаимодействовать. Скопированный элемент управления (вместе с кучами кода поддержки и модулей) работал нормально.
Итак, это очень простые шаги, которые исправили мой исходный код
- В explorer explorer переименуйте файл (я просто добавил s в конце)
- Перестроить
- Проверить, что элемент управления теперь можно добавить в обычную форму
- Переименуйте элемент управления обратно в исходное имя
Шаг 4 может быть необязательным для вас, но если у вас есть контроль источника, и это в библиотеке, вы хотели бы сделать это.
Это привело контроль на все мои формы, которые не работали (насколько я могу судить). Кажется, проблема в VS, что-то помнит, что ей это не нравится?
Надеюсь, что это поможет, и я надеюсь, что найду это сообщение в следующий раз, когда получу это, когда забуду исправить:)
P.S. Очистить, перестроить и/или повторно запустить решение - это старая подставка для этой проблемы, но на этот раз это был всего лишь один настраиваемый элемент управления в целом (DLL). Надеюсь, это поможет.
Ответ 6
Перейдите на AnyCPU и перестройте проект. Visual Studio имеет проблемы с 64-битными элементами управления.
Ответ 7
Проверьте в своем файле form.designer, есть ли оставленное свойство с этим типом. Это случилось со мной несколько раз. После того, как я удалил эту строку и перестроил проект, все начало работать.
Ответ 8
Для меня, после добавления userControl, я сначала перестроил приложение, а затем обновил элементы в наборе инструментов, перейдя в проекты => Обновить элементы панели инструментов проекта.
Ответ 9
В моем случае это помогло вручную включить заголовочные файлы созданных пользовательских элементов управления в верхней части формы, где должны использоваться эти элементы управления.