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 create
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>
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.
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>