2012-08-09 88 views
19

我創建了一個類,它在一個全新的項目中擴展了DbConnectionVS2010在設計器模式下打開我的類文件(.cs)

public class FakeDbConnection : DbConnection { ... } 

在Solution Explorer中的類看起來是這樣的:enter image description here

當雙擊它希望在設計模式,將無法正常工作打開它。開放的.csproj文件揭示了問題

<ItemGroup> 
    <Compile Include="FakeADO\FakeDbConnection.cs"> 
    <SubType>Component</SubType> 
    </Compile> 
</ItemGroup> 

即使我刪除SubType標籤VS2010立即重新添加它。很煩人。

如何阻止VS2010在設計器模式下打開我的.cs文件並將其作爲常規代碼文件打開?

+0

刪除文件並重新添加,並記住此時更改類型 – Ankit 2012-08-09 09:53:53

+0

嘗試過,VS2010在打開項目後重新添加類型。 – vidstige 2012-08-09 10:56:48

回答

39

正如在回答中描述this question你可以這樣做:

[System.ComponentModel.DesignerCategory("Code")] 
class FakeDbConnection: DbConnection { ... } 

重要:屬性必須fully qualified否則VS2010會忽略這一點。

重要(感謝jmbpiano):該屬性僅適用於文件中的第一個類。

+0

有趣的...它不適用於我:-(我使用VS2010,並嘗試一個只繼承組件的類,也嘗試了繼承TabControl的類。 ..沒有這樣的運氣......也許它不適用於Express版本,雖然我覺得這不太可能! – series0ne 2012-08-10 08:15:10

+0

嗯,奇怪。你是否手動刪除.csproj文件中標記的子標記? – vidstige 2012-08-10 08:40:02

+3

發現問題,您需要*完全*限定屬性,否則將無法工作。 – vidstige 2012-08-10 08:44:12

0

那是因爲DBConnection繼承了「組件」。 關於禁用VS添加「子類型」在csproj文件 - 我不認爲這是可能的。

,您仍然可以aceess代碼,通過右鍵單擊在設計師 - >顯示的代碼(我認爲「F7」是該快捷鍵)

+0

歡迎來到計算器!感謝你的回答。我已經知道了,但沒有提出這個問題。似乎有些麻煩。但是,如果這是我唯一的方法,那麼我想它是一種解決方法。 – vidstige 2012-08-09 11:02:23

1

繼承層次結構表明,這個類(DbConnection)繼承自System.ComponentModel.Component。嘗試右鍵單擊該文件並查看源代碼。

一如既往,你可以檢查MSDN! HereDbConnection的文檔。

+0

謝謝,我已經知道這一點,但它非常繁瑣。打開文件不應該那麼複雜。 – vidstige 2012-08-09 10:57:10

+1

@vidstige它並不完全複雜,只是不如雙擊。查看Visual Studio設置和選項。您可能能夠找到類似「默認情況下在源視圖中打開組件派生項」的選項。我知道你的意思,但它令人討厭的是,組件在設計器中打開時並不是所有組件都必須是可設計的。 – series0ne 2012-08-09 11:54:46

+0

他搜索的人會發現 - 看我的答案:) – vidstige 2012-08-10 07:56:22

相關問題