14

我有一个 WinForm 项目,其中包含一个名为 MainUI 的表单。您可以看到自动生成的分部类显示为MainUI.cs. 有没有办法“移动”我自己创​​建的部分类MainUI.Other.csMainUI.cs以便它显示为另一个节点?

替代文字

4

3 回答 3

13

在 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 中重新打开解决方案并享受结节下的好处。

也就是说,您可能需要重新考虑这是否是一个好主意。.designer.cs 文件显示为子节点的原因是您通常不需要或不想打开它,因为它包含您通常通过设计器查看或编辑的生成代码。而部分类文件将包含您的代码,您需要编辑和查看;如果文件在解决方案资源管理器中不容易看到,则可能会使维护程序员感到困惑。但是,只有您才能知道什么适合您的项目——请牢记!

于 2010-03-21T03:59:49.583 回答
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>

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

于 2010-03-21T04:05:21.773 回答
0

您可以修改项目源文件以对相关文件进行分组。在项目源文件中,找到包含 MainUI.cs 的 ItemGroup 元素,并为 MainUI.Others.cs 添加一个条目

这里有一篇博客文章详细展示了如何做到这一点。 组/嵌套源代码文件

于 2010-03-21T03:59:00.880 回答