2010-03-21 40 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> 

通常尽管你不希望任何非生成的代码被隐藏,虽然作为一个子节点。我的常规做法是在名为“部分类”的项目中创建一个文件夹,并将它们全部添加到同一位置。