我写了一个小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
我该如何着手尝试调试此错误?我应该查看 userControl1
还是 userControl2
中的内容?
一些注意事项:
1) 我还可以将
userControl2
从工具栏拖到testForm1
上,它在 VS2010 Designer 和我运行测试应用。2) 我已成功进入
userControl2
的设计器,我在其中声明并设置了userControl1
的所有值,但userControl1
在运行时不会显示在testForm1
上。如果我在 VS2010 设计器的userControl2
属性窗口中选择userControl1
,Visual Studio 将崩溃。3) 如果有帮助,我很乐意发布代码。您更喜欢
userControl1
还是userControl2
的代码?虽然这两个控件都很小,但仍然有很多代码(特别是因为这个错误很可能发生在设计器中,所以我也必须发布它。
最佳答案
这似乎有助于解决问题,所以我将其作为答案发布。
为了在 Visual Studio 设计器中使用时调试您的控件,请运行两个 Visual Studio 实例并在两个实例中打开您的项目。然后,在其中一个实例中使用 Attach to process... 选项并附加到第二个实例以对其进行调试(devenv.exe 进程).这样,您应该能够看到异常是什么。
关于c# - 每当我将 UserControl 添加到窗体时,我的 UserControl 都会使 Visual Studio 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12393333/