2012-02-01 184 views
0

我不是一个错误专家,因此你们都不应该对我大吼,如果我即将说的不是我应该说的话。这是情况。我正在使用VS 2010 Ultimatum在C#中构建桌面Windows窗体应用程序。我添加了一个新的用户控件,其中包含一个图片框,当某个PropertyChangedEventHandler被触发时它应该显示图像。应用程序本身按预期工作:没有编译错误,当我运行它时,它完成了它的目的。然而VS表现怪异。事实上,当我在VS中打开项目时,它给了我这个信息: enter image description hereVisual Studio 2010错误?

我想也许我的VS安装已损坏。我重新安装了它,并再次打开了该项目,但也发生了相同的情况。奇怪的是,如果我注释掉一些调用PropertyChangedEventHandler的代码,那么VS就会开始并正常工作。这应该是一个VS错误?毕竟,它至少应该抱怨我的代码不被支持,但它不应该因为我写了一些不好的代码而崩溃。此外,如果我的代码编译和按预期工作,有人可以告诉我什么是错的? P.S:以下是由VS显示的错误的详细信息。我期待听到你的想法。

Problem Event Name: CLR20r3 
    Problem Signature 01: devenv.exe 
    Problem Signature 02: 10.0.30319.1 
    Problem Signature 03: 4ba1fab3 
    Problem Signature 04:<<<<<Hiden for privacy issues>>>>> (It is just the one the namespace where the error comes from!) 
    Problem Signature 05: 1.0.0.0 
    Problem Signature 06: 4f288861 
    Problem Signature 07: 25 
    Problem Signature 08: 1 
    Problem Signature 09: System.DllNotFoundException 
    OS Version: 6.1.7600.2.0.0.256.4 
    Locale ID: 1033 
Additional information about the problem: 
    LCID: 1033 

我也贴了同样的线程MSDN forum

+0

首先,如果它在注释掉某些代码时发生变化,您应该发布您注释掉的代码。其次,在错误细节中提到了这个问题:'问题签名09:System.DllNotFoundException' - 某些程序试图加载无法找到的DLL,可能是因为它位于系统PATH中的某个位置。这可能是在命名空间中的东西(你从你的帖子中删除)。检查你的项目使用的引用(特别是那些与你注释掉的代码有关的代码,以消除这个问题)。 – 2012-02-01 01:24:28

回答

1

您需要从设计模式射击禁用PropertyChangedEventHandler。

如果这是C#,它应该是这样的:

if(!this.DesignMode) 
{ 
    PropertyChanged(this, e); 
} 

如果不是特别地,然后禁用任何功能可能会在触发的designMode导致错误。

+0

这个代码应该放在哪里?在Form构造函数中?或在主要功能? – 2012-02-01 01:33:38

+0

事件被解雇的地方。如果它在自定义用户控件中,则将其放在那里。如果您在表单代码中创建了事件,则将其放入触发事件逻辑的位置。你只需要把这个条件放在导致问题的逻辑上。 – Corylulu 2012-02-01 01:42:30

+0

我试过了。它根本不起作用。我甚至停止了调用事件处理程序,但它仍然不起作用。有趣的是,如果我只是删除函数(在我的代码中没有被调用的任何地方),VS的工作方式与预期的一样! – 2012-02-01 01:58:31