我有一个WinForm项目,其中包含一个名为MainUI的窗体。您可以看到自动生成的分部类显示为MainUI.cs下的一个节点。有没有办法将我自己创建的分部类MainUI.Other.cs“移动”到MainUI.cs下,使其显示为另一个节点?
MainUI.cs
MainUI.Other.cs
wnrlj8wa1#
在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文件显示为子节点的原因是,您通常不需要或不想打开它,因为它包含您通常会通过设计器查看或编辑的生成代码。而分部类文件将包含您希望编辑和查看的代码;如果文件在解决方案资源管理器中不容易看到,维护程序员可能会感到困惑。但是,只有您才知道什么适合您的项目--只是需要记住的一些东西!
smdnsysy2#
是的,这是可能的,但您必须手动编辑项目文件。在项目文件中(用XML编辑器打开)找到列出项组的文件。在我的示例中,我将窗体保留为“Form1.cs”。按照下面的示例将子元素"<DependentUpon>"添加到扩展类中:
"<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”的文件夹,并将它们添加到同一个位置。
wgmfuz8q3#
您可以修改项目源文件以将相关文件分组。在项目源文件中,找到包含MainUI.cs的ItemGroup元素,并为MainUI.Others.cs添加一个条目这里有一篇博客文章详细介绍了如何做到这一点。Group/nest source code files
5cnsuln74#
再补充一下@itowlson的回答:如果在编译时出现诸如“Duplicate 'Compile' items were included.”之类的错误,那可能是因为您要包含的文件已经使用通配符包含了。解决方案是删除它们,然后将它们添加到编译配置中,如下所示:
</Project> <ItemGroup> <Compile Remove="MainUI.Other1.cs" /> <Compile Remove="MainUI.Other2.cs" /> </ItemGroup> <ItemGroup> <Compile Include="MainUI.Other1.cs"> <DependentUpon>MainUI.cs</DependentUpon> </Compile> <Compile Include="MainUI.Other2.cs"> <DependentUpon>MainUI.cs</DependentUpon> </Compile> </ItemGroup> </Project>
4条答案
按热度按时间wnrlj8wa1#
在Visual Studio中关闭方案,然后在文本编辑器中开启.csproj档。寻找MainUI.Other.cs,然后加入下列XML项目:
在Visual Studio中重新打开该解决方案,并享受节点下的良好效果。
也就是说,您可能需要重新考虑这是否是一个好主意。将.designer.cs文件显示为子节点的原因是,您通常不需要或不想打开它,因为它包含您通常会通过设计器查看或编辑的生成代码。而分部类文件将包含您希望编辑和查看的代码;如果文件在解决方案资源管理器中不容易看到,维护程序员可能会感到困惑。但是,只有您才知道什么适合您的项目--只是需要记住的一些东西!
smdnsysy2#
是的,这是可能的,但您必须手动编辑项目文件。
在项目文件中(用XML编辑器打开)找到列出项组的文件。在我的示例中,我将窗体保留为“Form1.cs”。按照下面的示例将子元素
"<DependentUpon>"
添加到扩展类中:通常情况下,您不会希望任何非生成的代码作为子节点隐藏起来。我的常规做法是在项目中创建一个名为“Partial Classes”的文件夹,并将它们添加到同一个位置。
wgmfuz8q3#
您可以修改项目源文件以将相关文件分组。在项目源文件中,找到包含MainUI.cs的ItemGroup元素,并为MainUI.Others.cs添加一个条目
这里有一篇博客文章详细介绍了如何做到这一点。Group/nest source code files
5cnsuln74#
再补充一下@itowlson的回答:如果在编译时出现诸如“Duplicate 'Compile' items were included.”之类的错误,那可能是因为您要包含的文件已经使用通配符包含了。
解决方案是删除它们,然后将它们添加到编译配置中,如下所示: