Не удалось загрузить элемент панели. Он будет удален из панели инструментов

у меня есть WinForm приложение. Я также создал свой собственный User Control для него. Все работало нормально. До сегодняшнего дня, когда я получил сообщение об ошибке при попытке добавить его обратно в свою программу (я никогда не удалял его. Visual Studio сделал).

не удалось загрузить элемент toolbox #UserControlName. Он будет удален из инструментальный ящик.

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

'#UserControlName ' никогда не назначается и всегда будет иметь свой значение по умолчанию null.

и когда я смотрю на код конструктора, это правда. Но я ничего не сделал со своим дизайнерским кодом. Мой пользовательский элемент управления определен там,но не создан. Как мне его вернуть?

имеет ли это какое-либо отношение к тому, что я изменил свою платформу сборки с x32 to x64? Если это так, я буду удивлен, потому что после этого изменения программа работала нормально.

6 ответов


в такие моменты, как это, вы будете вынуждены возиться с кодом дизайнера. Пока вы не вносите радикальных изменений в код конструктора, вы не должны ничего ломать. Чтобы играть безопасно, повторно создайте экземпляр объекта, где создаются другие элементы управления (в верхней части страницы). Дизайнер должен заполнить пробелы для свойств и тому подобного.

Это также должно вернуть элемент управления на панель инструментов.


У меня была такая же проблема в последнее время. Поскольку этот (и любой другой ответ на этом сайте и в интернете) действительно помог мне, я нашел способ исправить это.
Просто очистите файлы и восстановите решение. Все очень просто.


Я страдал от той же проблемы для одного из наших приложений, и не могу найти решение. Поэтому я создал пользовательские и пользовательские элементы управления вручную. После поиска в Интернете я, наконец, нашел, почему дизайнер не для данного конкретного проекта. Ответ заключается в том, что проект 64 бит, а Visual Studio по-прежнему не имеет 64-разрядной версии, это все еще 32 бит. Таким образом, дизайнер не смог загрузить элементы управления в 64-разрядных приложениях или библиотеках классов. Прочитайте статью Microsoft о этот. https://support.microsoft.com/en-us/help/963017/cannot-add-controls-from-64-bit-assemblies-to-the-toolbox-or-use-in-designers-within-the-visual-studio-ide


вам не обязательно вставлять пользовательский элемент управления вручную. У меня была такая же ситуация там была причина.
В моем случае это не удалось, потому что сборка EXE была скомпилирована в "смешанный режим" с помощью типа поддержки CLR /clr. После изменения его на "только управляемый", установив тип /clr:pure, он работал.
Подробнее см. В разделе мой ответ здесь, в SO.


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

Это должно было определить проблемную строку(ы) кода, так как отладчик не будет сотрудничать. Скопированный элемент управления (вместе с кучей кода поддержки и модулей) работал нормально.

Итак, это очень простые шаги, которые исправили мой оригинал код

  1. в обозревателе решений переименуйте файл (я только что добавил s в конце)
  2. восстановить
  3. проверить элемент управления теперь можно добавить в простую форму
  4. переименуйте элемент управления обратно в его исходное имя

Шаг 4 может быть необязательным для вас, но если у вас есть система управления версиями, и это в Библиотеке, вы захотите это сделать.

это вернуло контроль на все мои формы, которые не работали (насколько я могу рассказывать.) Кажется, проблема в VS, который как-то помнит, что ему это не нравится?

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

P. S. В очистки, восстановления и/или повторного запуска всего будет старый стоять за этой проблемой, но на этот раз это был только один пользовательский элемент управления в целом (DLL), в классе из них. Надеюсь, это поможет.


изменить на AnyCPU и перестроить проект. Visual Studio имеет проблемы с элементами управления 64bit.