2010-03-21 43 views
14

我有一個包含名爲MainUI的窗體的WinForm項目。您可以看到自動生成的部分類顯示爲MainUI.cs下的節點。有沒有辦法「移動」我自己創​​建的部分類MainUI.Other.csMainUI.cs下,這樣它會顯示爲另一個節點?WinForm部分類

alt text http://i42.tinypic.com/dnkoyo.jpg

回答

12

關閉Visual Studio中的解決方案,並在文本編輯器中打開.csproj文件。查找MainUI.Other.cs,並添加以下XML元素:

<Compile Include="MainUI.Other.cs"> 
    <SubType>Form</SubType> 
    <DependentUpon>MainUI.cs</DependentUpon> <!-- this is the magic incantation --> 
</Compile> 

重新打開Visual Studio中的解決方案,並享受subnodular善良。

這就是說,你可能想重新考慮這是否是一個好主意。 .designer.cs文件顯示爲子節點的原因是您通常不需要或不想打開它,因爲它包含您通常會通過設計器查看或編輯的生成的代碼。而部分類文件將包含您的代碼,您需要編輯和查看;如果在解決方案資源管理器中不容易看到文件,維護程序員可能會感到困惑。然而,只有你可以知道什麼是你的項目的正確的 - 只是要記住!

+0

注意 - 如果您的「DependentUpon」文件位於子文件夾中,那麼即使它在其他位置顯示爲 - 當您執行此操作時,您仍然應該使用文件夾這個。 – 2010-09-01 05:20:53

0

您可以修改項目源文件組的相關文件。 在項目源文件中,找到包含MainUI.cs的ItemGroup元素,併爲MainUI添加一個條目.Others.cs

這裏有一篇博文,詳細介紹如何做到這一點。 Group/nest source code files

1

是的,這是可能的,但你將不得不手工編輯項目文件。

在項目文件(使用XML編輯器打開它)中找到文件列表項目組。在我的示例中,我將該表單留爲「Form1.cs」。子元素"<DependentUpon>"添加到您的擴展類按照下面的例子:

<Compile Include="Form1.cs"> 
     <SubType>Form</SubType> 
    </Compile> 
    <Compile Include="Form1.Designer.cs"> 
     <DependentUpon>Form1.cs</DependentUpon> 
    </Compile> 
    <Compile Include="Form1.Designer.Other.cs"> 
     <DependentUpon>Form1.cs</DependentUpon> 
     <SubType>Form</SubType> 
    </Compile> 

通常儘管你不希望任何非生成的代碼被隱藏,雖然作爲一個子節點。我的常規做法是在名爲「部分類」的項目中創建一個文件夾,並將它們全部添加到同一位置。