Visual Studio Designer сообщение - PullRequest
       19

Visual Studio Designer сообщение

9 голосов
/ 22 февраля 2012

При попытке открыть в режиме конструктора форму (VB.NET), в которой у меня есть пользовательский UserControl, я вижу сообщение из Visual Studio:

---------------------------
Microsoft Visual Studio
---------------------------
The control MyNamespace.MyUserControl has thrown an unhandled exception 
in the designer and has been disabled.  

Exception:
Cannot access a disposed object.
Object name: 'SplitterPanel'.

Stack trace:
---------------------------
OK   
---------------------------

И форма не отображается вдизайнер.Что делать?

Ответы [ 3 ]

4 голосов
/ 22 февраля 2012

Загрузите проект в режиме отладки и установите точку останова на функции InitializeComponent() для управления пользователем.Там может быть какая-то ошибка, заключающаяся в удалении объекта с именем SplitterPanel и последующей попытке доступа к нему позже.Эта инициализация выполняется, когда Visual Studio пытается отобразить элемент управления, что приводит к ошибке, которую вы видите.

3 голосов
/ 01 ноября 2012

Удалить атрибут

<System.Diagnostics.DebuggerStepThrough()> _

Из InitializeComponent () внутри конструктора. Это позволит вам пройти через дизайнера. Чтобы точно определить, где выбрасывается исключение, вы также можете разбить, когда исключение CLR выдается

Меню отладки >>> Исключения >>> установите флажки «Общие исключения времени выполнения языка», «Брошенный»

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

2 голосов
/ 01 ноября 2012

Вы должны искать в конструкторе вашей формы вызов метода Dispose в методе InitializeComponent. Примерно так бы написано:

Me.SplitterPanel.Dispose()

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

Удаление этой строки решит проблему.

...