Подтвердить что ты не робот

Мой 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? Хотя оба элемента управления невелики, все еще есть много кода (особенно, поскольку эта ошибка, вероятно, встречается в Дизайнере, поэтому я тоже должен был бы опубликовать это сообщение.

4b9b3361

Ответ 1

Кажется, это помогло решить проблему, поэтому я отправляю ее как ответ.

Чтобы отладить ваш контроль при использовании в дизайнере Visual Studio, запустите два экземпляра Visual Studio и откройте свой проект в обоих экземплярах. Затем в одном из экземпляров используйте параметр Приложить к процессу... и присоедините его ко второму экземпляру для его отладки (процесс devenv.exe). Таким образом, вы должны уметь видеть, что такое исключение.

Ответ 2

Вероятно, что-то в конструкторе вашего элемента управления, пытающемся получить доступ к другому, что недоступно, или создает исключение, которое невозможно поймать с помощью IDE (StackOverflow, OutOfMemory и т.д.)