2012-02-01 188 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