簡體   English   中英

Visual Studio Designer無法加載

[英]Visual Studio Designer fails to load

在我的應用程序中,我使用ScintillaNET DLL並創建了一個名為BufferedScintilla的類,我繼承控件並對其進行雙緩沖。 沒有什么不尋常的,只是正常的C#繼承...比,我修改了我的表單的Designer.cs文件,並從使用ScintillaNET.Scintilla()切換到BufferedScintilla()。

應用程序加載並正常工作但是Visual Studio 2013設計器無法加載,告訴我“無法將類型為BufferedScintilla的對象轉換為類型ScintillaNET.Scintilla。我嘗試了所有內容,清理了解決方案並重建,僅重建,調試,關閉並重新啟動Visual Studio甚至重新啟動PC,但沒有任何幫助...... Visual Studio Designer拒絕讓我設計我的表單。

同樣,應用程序運行FINE,我確信表單上的控件是新的BufferedScintilla,而不是ScintillaNET.Scintilla,因為我可以看到效果(它是雙緩沖的,我正在繪制的自定義圖形不會閃爍我已100%確定該應用程序與繼承的組件一起運行。

我確信這是某種Visual Studio的小漏洞,所以我正在尋找一個解決方案讓它讓我再次設計我的應用程序。

編輯:澄清一下,Visual Studio 2013 Update 1和Visual Studio 2010也會發生同樣的事情。 我檢查了程序集,它是作為Any CPU構建的,所以Visual Studio設計器應該沒問題...

編輯:因為似乎無法修復此問題(某種錯誤),我希望轉換為在構建項目之前自動替換Designer.cs文件中的行,然后在項目構建之后(或不構建) 。 是否有任何Visual Studio工具在構建項目之前按下Build按鈕后自動替換類中的某些文本,並且在構建之后? 我想替換構造函數和聲明,以便在設計時它是ScintillaNET.Scintilla,並且在運行時它是BufferedScintilla。 謝謝!

提前致謝!

瓦利

我遇到了一個與此非常類似的問題,在我的例子中,設計器仍然使用構造函數和為控件和表單設置的加載事件。 在我的情況下,我使用的是一個在設計時沒有設置過的變量,所以為了解決這個問題,你必須修改你的代碼來做這樣的事情......

if(this.DesignMode)
{
    //DoSomething();
}
else
{
    //DoSomethingElse();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM