2010-03-21 10 views
14

Mam projekt WinForm, który zawiera formularz o nazwie MainUI. Możesz zobaczyć, że automatycznie generowana klasa częściowa pojawia się jako węzeł pod numerem MainUI.cs. Czy istnieje sposób na "przeniesienie" utworzonej przez siebie częściowej klasy częściowej MainUI.Other.cs pod MainUI.cs, aby był wyświetlany jako inny węzeł?Klasy klas WinForm

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

Odpowiedz

12

Zamknij rozwiązanie w Visual Studio i otwórz plik .csproj w edytorze tekstu. Znajdź MainUI.Other.cs i dodać następujący element XML:

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

Reopen rozwiązanie w Visual Studio i cieszyć subnodular dobroci.

Powiedziawszy, możesz chcieć zastanowić się, czy to dobry pomysł. Powód, dla którego plik .designer.cs jest wyświetlany jako podwęzeł, wynika z faktu, że zazwyczaj nie jest on potrzebny lub nie chce go otwierać, ponieważ zawiera wygenerowany kod, który normalnie przegląda lub edytuje za pośrednictwem projektanta. Natomiast częściowy plik klasy będzie zawierał kod twój kod, który będziesz chciał edytować i przeglądać; może to być mylące dla programistów konserwacyjnych, jeśli plik nie jest dobrze widoczny w Eksploratorze rozwiązań. Jednak tylko Ty możesz wiedzieć, co jest właściwe dla twojego projektu - po prostu o czymś pamiętać!

+0

Uwaga - jeśli plik "DependentUpon" znajduje się w podfolderze, to mimo iż pojawia się on gdzie indziej jako - nadal powinieneś używać tylko filename to. –

0

Można zmodyfikować plik źródłowy projektu do grupy powiązanych plików. W pliku źródłowym projektu znajdź element ItemGroup zawierający plik MainUI.cs i dodaj pozycję dla MainUI.Others.cs

Tutaj blog, który pokazuje, jak to zrobić w szczegółach.

1

Tak, jest to możliwe, ale trzeba będzie ręcznie edytować plik projektu.

W pliku projektu (otwórz go za pomocą edytora XML) znajdź grupę elementów listy plików. W moim przykładzie opuściłem formularz jako "Form1.cs". Dodaj element podrzędny "<DependentUpon>" do rozszerzonego klasy, jak na poniższym przykładzie:

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

Zazwyczaj jednak nie chcesz jakikolwiek zakaz wygenerowany kod do być ukryte jako węzła potomnego chociaż. Moja normalna praktyka polega na utworzeniu folderu w projekcie o nazwie "Częściowe klasy" i dodaniu ich wszystkich w tej samej lokalizacji.

Powiązane problemy