Мой UserControl сбрасывает Visual Studio, когда я добавляю его в форму
Я написал небольшую System.Windows.Forms.UserControl, назовите ее userControl1
, которая, кажется, работает так, как я ее хочу.
В Visual Studio 2010 Designer я могу перетащить userControl1
с панели инструментов и отбросить его в Windows Form, который я назову testForm1
. Я могу подключиться к userControl1
, и он работает так, как должен.
Однако целью userControl1
является возможность использовать его в другом UserControl, позвоните ему userControl2
.
В Visual Studio 2010 Designer, если я перетащить userControl1
с панели инструментов и вытащить его на userControl2
, Visual Studio 2010 выйдет из строя без сообщения, кроме перезапуска.
![screenshot]()
В то же время ошибка приложения регистрируется в средстве просмотра событий с идентификатором события 1000:
Faulting application name: devenv.exe, version: 10.0.40219.1, time stamp: 0x4d5f2a73
Faulting module name: unknown, version: 0.0.0.0, time stamp: 0x00000000
Exception code: 0xc00000fd
Fault offset: 0x0965f816
Faulting process id: 0x1580
Faulting application start time: 0x01cd90f84338e443
Faulting application path: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
Faulting module path: unknown
Report Id: 49ddcedf-fcf8-11e1-8016-00248103a942
Как я могу попытаться отладить эту ошибку? Должен ли я посмотреть что-то в userControl1
или userControl2
?
Несколько примечаний:
-
1) Я также могу перетащить userControl2
с панели инструментов на testForm1
, и он работает (т.е. отображает) как в VS2010 Designer, так и при запуске тестового приложения.
/li > -
2) Я успешно отправился в конструктор userControl2
, где я объявил и установил все значения для userControl1
, но userControl1
не будет отображаться на testForm1
при его запуске. Если я выберу userControl1
из окна свойств userControl2
в конструкторе VS2010, произойдет сбой Visual Studio.
-
3) Я рад опубликовать код, если это поможет. Вы предпочли бы код для userControl1
или userControl2
? Хотя оба элемента управления невелики, все еще есть много кода (особенно, поскольку эта ошибка, вероятно, встречается в Дизайнере, поэтому я тоже должен был бы опубликовать это сообщение.
Ответы
Ответ 1
Кажется, это помогло решить проблему, поэтому я отправляю ее как ответ.
Чтобы отладить ваш контроль при использовании в дизайнере Visual Studio, запустите два экземпляра Visual Studio и откройте свой проект в обоих экземплярах. Затем в одном из экземпляров используйте параметр Приложить к процессу... и присоедините его ко второму экземпляру для его отладки (процесс devenv.exe). Таким образом, вы должны уметь видеть, что такое исключение.
Ответ 2
Вероятно, что-то в конструкторе вашего элемента управления, пытающемся получить доступ к другому, что недоступно, или создает исключение, которое невозможно поймать с помощью IDE (StackOverflow, OutOfMemory и т.д.)