我有一个 WinForm 项目,其中包含一个名为 MainUI 的表单。您可以看到自动生成的分部类显示为MainUI.cs
. 有没有办法“移动”我自己创建的部分类MainUI.Other.cs
,MainUI.cs
以便它显示为另一个节点?
3 回答
在 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 文件显示为子节点的原因是您通常不需要或不想打开它,因为它包含您通常通过设计器查看或编辑的生成代码。而部分类文件将包含您的代码,您需要编辑和查看;如果文件在解决方案资源管理器中不容易看到,则可能会使维护程序员感到困惑。但是,只有您才能知道什么适合您的项目——请牢记!
是的,这是可能的,但您必须手动编辑项目文件。
在项目文件中(使用 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”的文件夹并将它们全部添加到同一位置。
您可以修改项目源文件以对相关文件进行分组。在项目源文件中,找到包含 MainUI.cs 的 ItemGroup 元素,并为 MainUI.Others.cs 添加一个条目
这里有一篇博客文章详细展示了如何做到这一点。 组/嵌套源代码文件