代码之家  ›  专栏  ›  技术社区  ›  nivlam

WinForm分部类

  •  14
  • nivlam  · 技术社区  · 14 年前

    我有一个winform项目,其中包含一个名为mainui的表单。您可以看到自动生成的分部类显示为 MainUI.cs . 有什么方法可以“移动”我自己创建的部分类吗 MainUI.Other.cs 在下面 mainui.cs.主页 以便它显示为另一个节点?

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

    3 回复  |  直到 14 年前
        1
  •  12
  •   itowlson    14 年前

    关闭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文件显示为子节点的原因是,您通常不需要或不想打开它,因为它包含通常通过设计器查看或编辑的生成代码。而分部类文件将包含 你的 您将要编辑和查看的代码;如果在解决方案资源管理器中不容易看到该文件,则维护程序员可能会感到困惑。然而,只有你知道什么对你的项目是正确的——只是要记住一些事情!

        2
  •  1
  •   RobS    14 年前

    是的,这是可能的,但您必须手动编辑项目文件。

    在项目文件中(用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>
    

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

        3
  •  0
  •   Ray Lu    14 年前

    可以修改项目源文件以对相关文件进行分组。 在项目源文件中,找到包含mainui.cs的itemgroup元素,并添加mainui.others.cs的条目。

    这里有一篇博文详细介绍了如何做到这一点。 Group/nest source code files