Изменения пользовательского элемента управления VS2010 Winforms не отображаются в родительской форме

Я создал серию пользовательских элементов управления. Перетащил один из элементов управления на главную форму. Он показывает ОК. Вернулся и внес изменения в дизайн пользовательского элемента управления. Восстановленный проект. Очищенный проект. вручную удалил все двоичные файлы проекта, включая папку obj. Изменение по-прежнему не отображается в пользовательском элементе управления, размещенном в основной форме. Перетаскивание нового экземпляра элемента управления из панели инструментов показывает только старую версию элемента управления.
Полное удаление элементов управления из панели инструментов и их повторное добавление устранило проблему, но, конечно же, мне не нужно делать это каждый раз, когда я изменить? Все пользовательские элементы управления находятся в той же сборке, что и основная форма. Инструмент> Параметры> Конструктор Windows Forms> Автозаполнение панели инструментов имеет значение true. Любые идеи приветствуются. Спасибо


person Matt    schedule 21.09.2010    source источник


Ответы (2)


Не добавляйте элемент управления на панель инструментов самостоятельно. Это помещает копию сборки в личный каталог. Да, эта копия не обновляется автоматически, вы получаете старый контроль.

Положитесь на параметр «Автозаполнение панели инструментов». Он автоматически добавляет любые элементы управления, которые есть в загруженных проектах, на панель инструментов. Добавленные элементы управления находятся в верхней части панели инструментов.

person Hans Passant    schedule 21.09.2010
comment
Спасибо. Мешало мне еще больше его набивать. - person Matt; 30.09.2010
comment
Если кто-то ищет эту опцию, просто используйте: Просто перейдите в Инструменты - ›Параметры -› Конструктор Windows Forms и установите для AutoToolboxPopulate значение true. - person bcsanches; 30.06.2011
comment
Черт, к сожалению, пользовательский элемент управления не обновляется, хотя Auto toolbox populate был включен. - person The Muffin Man; 06.10.2014

Я согласен с ответом 1, что это то, что должно было случиться, и часто случается. Но это не всегда работает, а иногда срабатывает частично.

Например, мое текущее решение.

Пространство имен Project 1 ToolsTester - это всего лишь временная форма для тестирования инструментов просмотра во втором проекте.

Пространство имен Project 2 UltimateFileFinder - имеет три представления.

Первые 2 представления (пользовательские элементы управления) UltFilesView и UltSlideShow, как обычно, появились на панели инструментов, поэтому я мог перетащить их в ToolsTester, чтобы опробовать их.

Затем я добавил еще один пользовательский элемент управления UltPanel, он не войдет в панель инструментов. Хотя компилируется без ошибок.

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

Я тестировал Visual Studio (полную версию) перед выпуском, и это была одна из тех областей, о которых я сообщил, поэтому проблема была известна до выпуска.

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

person Rob Rassler    schedule 26.11.2010