1

我在Visual Studio中的.NETCF窗口移動項目中顯示自定義(繼承)控件時出現問題。該控件在設計器表面上顯示爲一個灰色框,並在其中寫入類名稱。無法在VS 2008 Designer中顯示自定義控件 - .NETCF

作爲測試情況下,我有一個簡單的控制定義爲:

public class ucButton2 : Button 
{ 
} 

應該就像一個按鈕,但它給人的滑稽行爲。

在過去,我已經解決了這個問題或類似的問題與設計時間屬性文件。所以,我包括在以下內容

<?xml version="1.0" encoding="utf-16"?> 
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd"> 
    <Class Name="MyProject.CustomControls.ucButton2"> 
    <Description>Testbutton</Description> 
    <DesktopCompatible>true</DesktopCompatible> 
    </Class> 
</Classes> 

現在,事情得到真正奇怪的文件DTA.xmta - 我開始越來越編譯無關的類型化數據集文件從genasm.exe錯誤。

繼從這篇文章最後評論意見: http://www.simonrhart.com/2008/02/upgrading-your-solutions-to-visual.html

我改變DTA.xmta有「嵌入的資源」的生成操作

現在的應用程序編譯,但一切都沒有改變 - 設計師表面仍然只顯示一個帶有類名的空框。

我關閉並重新打開了Visual Studio,以確保沒有奇怪的緩存發生 - 相同的行爲。

就像我說的,過去的xmta文件已經解決了這樣的問題。但是這次沒有。但與此同時,在過去,添加一個xmta文件並不會導致genasm.exe在編譯時陷入困境。在我的其他項目中,我的xmta文件的構建操作是'無',而不是'嵌入式資源'。

在運行時,一切工作正常。這純粹是一個設計時間問題。任何幫助將非常感激。

+0

而不是添加一個XMTA文件,我創建了一個類圖(在解決方案資源管理器中右鍵單擊項目,然後單擊視圖類圖),之後單擊需要添加自定義屬性的類;在屬性窗口中,單擊[...]框,它將顯示「UcControl的自定義屬性」,例如:DesktopCompatible(true)或DesignTimeVisible(true),Description(「uc description」),ToolboxBitmap(「namespace。 ucControl「)。我沒有同質結果,有時候設計師是可見的。 – antonio 2017-11-29 01:02:04

回答

0

這是因爲智能設備控制設計器不支持可視化繼承 - 或者我應該說它不會顯示豐富。無論是通過代碼缺陷還是通過設計,它都不能像桌面.NET控制設計器那樣工作。有時它會顯示它,有時它不會。

但是,您的自定義控制代碼仍然可以工作,但它並不總是按預期方式顯示。

1

我想說你將DesktopCompatible(true)作爲自定義屬性添加到控件。請參閱:this post