【问题标题】:Visual Studio 2010 crashes when opening a form, containing an user control, in design mode在设计模式下打开包含用户控件的表单时,Visual Studio 2010 崩溃
【发布时间】:2011-08-10 08:59:05
【问题描述】:

以下是我的问题: 我的 Windows 窗体项目中有一个自定义用户控件。我可以在设计器中设计它就好了。但只要我想编辑包含控件的表单,Visual Studio 2010 就会崩溃。

据我所知,控件的构造函数和加载事件是在加载表单时执行的。

我尝试使用VS2010的另一个实例来调试设计器,但找不到执行的位置。

起初我的问题似乎是,对于 Threading.Timer 对象,我使用它来初始化我的对象(即从数据库加载值等等(出错时再试一次;))),回调函数由设计者执行,因此它试图访问在设计模式下无法访问的对象。 Threading.Timer 对象的初始化在加载事件中。但是即使在我将加载事件中的所有内容都注释掉之后(除了 try catch 块和 Debugger.Break() 调用在第二个实例 VS2010 中设置断点以调试设计器),只要我想编辑表单,Visual Studio 就会一直崩溃包含设计模式中的控件。

我尝试了一些在这里找到的步骤,但没有解决我的问题:User control always crashes Visual Studio

所以即使设计者在解析Load-Event或Constructor的时候也无事可做。它仍然崩溃。

有人知道我可以做些什么来防止 Visual Studio 崩溃并在表单设计器中正确显示用户控件吗?

包含用户控件的项目还引用了一些自定义库和库项目。我不知道问题是否与此有关。

【问题讨论】:

标签: visual-studio-2010 user-controls crash


【解决方案1】:

以某种方式解决了我自己的问题...

通过尝试调试设计器模式,我欺骗了自己。

尝试在设计器模式下打开包含用户控件的表单时,在 Load-Event 中设置 Debugger.Break() 是一个非常糟糕的主意,因为如果您没有调试 Visual Studio如果使用 Visual Studio 的另一个实例,则 Debugger.Break() 将停止应用程序并因此使 Visual Studio 实例崩溃。

最后,通过使用用户控件的 DesignerMode 属性,我能够阻止设计器执行我的线程的初始化。定时器对象可以通过这种方式解决问题。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题(VS 2005),标记的答案也对我不起作用。我终于能够通过删除解决方案中的“obj”和“bin”文件夹,然后在发布模式下重建项目来解决这个问题。我希望这对遇到此问题的其他人有所帮助。

    【讨论】:

      【解决方案3】:

      在我的问题中,由于设计模式每次打开解决方案时都会打开有罪文件,导致整个解决方案在每次打开时都崩溃,从而导致整个解决方案崩溃,这可能是由用户控件引起的,但我不能'不要访问解决方案来解决。

      所以我找到了一种替代方法,让我可以回到我的编码中。它并不涉及深入调试系统事件,我认为它可以帮助所有级别的用户,因此发布。

      我在解决方案之外打开了 aspx 文件,实际上只是前端代码文件,可以在记事本或任何文本编辑器(包括 VS)中完成。 注释掉所有代码(java 代码无关紧要,因为没有调用它) 保存文件并关闭。 重新打开解决方案。 即使打开了设计器视图,这一次它也没有崩溃,因为没有什么要处理的。 然后,我在部分中取消注释代码,不同数量的代码,20 行,100 行......每次返回设计器视图以检查它是否会崩溃。 当我完成时(没有崩溃!)我能够从我离开的地方继续。 希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多