2010-03-21 7 views
14

J'ai un projet WinForm qui contient un formulaire appelé MainUI. Vous pouvez voir que la classe partielle générée automatiquement apparaît sous la forme d'un nœud sous MainUI.cs. Y a-t-il un moyen de "déplacer" ma classe partielle auto-créée MainUI.Other.cs sous MainUI.cs afin qu'elle apparaisse comme un autre noeud?Classes partielles WinForm

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

Répondre

12

Fermez la solution dans Visual Studio et ouvrez votre fichier .csproj dans un éditeur de texte. Trouvez MainUI.Other.cs et ajoutez l'élément XML suivant:

<Compile Include="MainUI.Other.cs"> 
    <SubType>Form</SubType> 
    <DependentUpon>MainUI.cs</DependentUpon> <!-- this is the magic incantation --> 
</Compile> 

Rouvrez la solution dans Visual Studio et profiter de la bonté subnodular. Cela dit, vous voudrez peut-être reconsidérer si c'est une bonne idée. La raison pour laquelle le fichier .designer.cs est affiché en tant que sous-noeud est que vous n'aurez normalement pas besoin de l'ouvrir, car il contient du code généré que vous auriez normalement consulté ou édité via le concepteur. Considérant qu'un fichier de classe partielle contiendra votre code, que vous voudrez éditer et voir; il peut être déroutant pour les programmeurs de maintenance si le fichier n'est pas facilement visible dans l'Explorateur de solutions. Cependant, vous seul pouvez savoir ce qui est bon pour votre projet - juste quelque chose à garder à l'esprit!

+0

Remarque - Si votre fichier "DependentUpon" se trouve dans un sous-dossier, même s'il apparaît ailleurs comme , vous devez toujours utiliser filename ce. –

0

Vous pouvez modifier le fichier source du projet pour regrouper les fichiers connexes. Dans le fichier source du projet, recherchez l'élément ItemGroup qui contient MainUI.cs et ajoutez une entrée pour MainUI.Others.cs

Voici un article de blog expliquant comment procéder en détails. Group/nest source code files

1

Oui, cela est possible, mais vous devrez modifier manuellement le fichier de projet.

Dans le fichier de projet (ouvrez-le avec l'éditeur XML), recherchez le groupe d'éléments de la liste de fichiers. Dans mon exemple, j'ai quitté le formulaire en tant que "Form1.cs". Ajouter l'élément enfant "<DependentUpon>" à votre classe étendue comme dans l'exemple ci-dessous:

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

En général si vous ne voulez pas de code non généré à cacher comme un nœud enfant cependant. Ma pratique habituelle est de créer un dossier dans le projet appelé "Classes partielles" et de les ajouter tous au même endroit.

Questions connexes