15

我写了一个小的System.Windows.Forms.UserControl,调用它userControl1,它似乎按照我想要的方式工作。

在 Visual Studio 2010 的设计器中,我可以userControl1从工具栏中拖放到我将调用的 Windows 窗体上testForm1。我可以接线userControl1,它应该可以正常工作。

但是, 的目的userControl1是能够在另一个UserControl中使用它,我们称之为userControl2

在 Visual Studio 2010 的设计器中,如果我userControl1从工具栏拖放到 上userControl2,Visual Studio 2010 将崩溃,除了正在重新启动之外没有任何消息。

截屏

同时,在事件查看器中记录了一个应用程序错误,事件 ID 为 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

我该如何尝试调试此错误?我应该在userControl1or中查看某些内容userControl2吗?

几点注意事项:

  • 1)我也可以将userControl2工具栏上的 a 拖到 上testForm1,它在 VS2010 Designer 和运行测试应用程序时都可以正常工作(即显示)。

  • 2)我已成功进入userControl2我声明并设置所有值的设计器userControl1,但userControl1在运行时不会显示testForm1。如果我userControl1userControl2VS2010 设计器的“属性”窗口中选择,Visual Studio 将崩溃。

  • 3)如果有帮助,我很乐意发布代码。您更喜欢userControl1or的代码userControl2吗?虽然这两个控件都很小,但仍然有很多代码(特别是因为这个错误很可能发生在 Designer 中,所以我也必须发布它。

4

2 回答 2

19

似乎这有助于解决问题,所以我将其发布为答案。

为了在 Visual Studio 设计器中使用时调试您的控件,请运行两个 Visual Studio 实例并在这两个实例中打开您的项目。然后,在其中一个实例中使用Attach to process...选项并附加到第二个实例以对其进行调试(devenv.exe进程)。这样,您应该能够看到异常是什么。

于 2012-09-13T15:53:31.763 回答
2

您的控件的构造函数中可能有一些东西试图访问另一个不可用的东西,或者正在创建一个 IDE 无法捕获的异常(StackOverflow、OutOfMemory 等)

于 2012-09-12T17:28:57.203 回答