8

In Visual Studio, two files are created when you create a new Windows Form in your solution (e.g. if you create MyForm.cs, MyForm.Designer.cs and MyForm.resx are also created). These second two files are displayed as a subtree in the Solution Explorer.

Is there any way to add files to the sub-tree or group for a Windows Form class?

pian0
  • 837
  • 1
  • 8
  • 19

3 Answers3

15

Open .csproj in edit mode, look for the file you want to be under another one, and add the DependentUpon element, like this:

<Compile Include="AlertDialog.xaml.cs">
  <DependentUpon>AlertDialog.xaml</DependentUpon>
</Compile>
Santiago Palladino
  • 3,522
  • 2
  • 26
  • 36
  • The FileNesting extension can do that automatically: https://marketplace.visualstudio.com/items?itemName=MadsKristensen.FileNesting – John Aug 30 '17 at 15:18
6

You need to edit the csproj directly. There is a DependentUpon tag that you have to add as a child tag of the file you want to place under MyForm.cs.

Example:

<Compile Include="MyForm.MyCoolSubFile.cs">
  <DependentUpon>MyForm.cs</DependentUpon>
</Compile>
Jeff Yates
  • 61,417
  • 20
  • 137
  • 189
5

Yes, but it's a bit of a hassle - basically you need to edit the project file by hand.

Here's an example from a project that Marc Gravell and I both work on:

<Compile Include="Linq\Extensions\DataProducerExt.cs" />
<Compile Include="Linq\Extensions\DataProducerExt.SingleReturn.cs">
  <DependentUpon>DataProducerExt.cs</DependentUpon>
</Compile>
<Compile Include="Linq\Extensions\DataProducerExt.Grouping.cs">
  <DependentUpon>DataProducerExt.cs</DependentUpon>
</Compile>
<Compile Include="Linq\Extensions\DataProducerExt.Pipeline.cs">
  <DependentUpon>DataProducerExt.cs</DependentUpon>
</Compile>
<Compile Include="Linq\Extensions\DataProducerExt.Conversion.cs">
  <DependentUpon>DataProducerExt.cs</DependentUpon>
</Compile>
<Compile Include="Linq\Extensions\DataProducerExt.Math.cs">
  <DependentUpon>DataProducerExt.cs</DependentUpon>
</Compile>

Note the "DependentUpon" element in each of the dependencies. This displays appropriately in VS, with DataProducerExt.cs as the parent.

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194