Почему VS2017 продолжает терять мои производные элементы управления? - PullRequest
0 голосов
/ 22 мая 2018

В моем приложении namespace = DRT я создаю классы элементов управления (например, кнопки, текстовые поля), которые выводят их соответствующие классы элементов управления Windows, например,

internal abstract class DRT_Button_Abstract : Button
{
    ....
}

internal class DRT_Button_CancelSearch : DRT_Button_Abstract
{
    ....
}

internal class DRT_Button_StartSearch : DRT_Button_Abstract
{
    ....
}

Всего у меня в настоящее время есть 13 производныхклассы, которые являются производными от одного из моих тезисов или от класса управления Windows.После успешной сборки я вижу свои классы управления (например, DRT_Button_CancelSearch и DRT_Button_StartSearch) на панели инструментов и успешно помещаю их в основную форму.Некоторое время все в порядке, но в конечном итоге я пойду, чтобы открыть основной файл form.cs [Design] (т.е. конструктор пользовательского интерфейса), и он покажет ошибку The variable '{control property name}' is either undeclared or was never assigned. для некоторой комбинации моих элементов управления.

Когда я проверяю основной файл формы Designer.cs, ожидаемый код для всех элементов управления присутствует, КРОМЕ ожидаемого оператора new.Их нет в основном файле формы Designer.cs.Например, я ожидаю увидеть this.drt_Button_CancelSearch = new DRT.DRT_Button_CancelSearch();, но его отсутствует

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

Что, черт возьми, происходит?Есть ли способ выйти из этой ситуации?

1 Ответ

0 голосов
/ 22 мая 2018

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

  • закрывал и снова открывал всех дизайнеров, которые имеют пользовательские элементы управления
  • , помещал все элементы управления в отдельный проект (в одном решении)
  • putвсе элементы управления в отдельном решении / экземпляре Visual Studio и установить правильную ссылку на dll (или даже пакет nuget)

С первыми двумя опциями у меня был разный успех.Повторное открытие конструктора не очень удобно и не работает.

Этот последний вариант является лучшим, но также и самым раздражающим, поскольку каждая корректировка требует перестройки проекта и обновления ссылки / пакета.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...