C#: das aufteilen einer Klasse in mehrere Dateien (mit einem Formular)
Mit: C#, VS2008
Habe ich hauptsächlich folgende form-Klasse:
[Main.cs]
namespace Server
{
public partial class PipeServerform : System.Windows.Forms.Form
{
...
}
}
Aber es ist groß und lang und enthält GUI + Logik-code.
So, ich teilen Sie die Klasse in mehrere Dateien für eine einfachere Verwaltung und erstellen Sie diese Datei, enthält nur die Logik details:
[DoCommands.cs]
namespace Server
{
public partial class PipeServerform : System.Windows.Forms.Form
{
...
}
}
Das funktioniert... ABER! Die 'DoCommands.cs' Datei innerhalb der VS2008-Projekt hat nun eine standardmäßig leere GUI 'form' - Fenster zugeordnet.
Macht es Sinn, als es noch Teil der main-form Klasse, aber ich nahm an, die Trennung zwischen den verschiedenen Dateien informieren möchte VS2008, dass es einfach ein Logik-Datei-Halter, der einfach Befehle, und enthält keine GUI-form-code.
Gibt es eine einfache Möglichkeit, dies zu lösen ansehen? So, dass die 'DoCommands.cs' - Datei nicht über die zugehörige leere GUI-Formular?
Oder muss ich buchstäblich aufteilen in verschiedene Klassen?
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn, um es zu bekommen, unterzuordnen, sich unter PipeServerForm, öffnen Sie das Projekt-Datei in einem text-editor. Sie finden ein block so Aussehen:
Ändern Sie es in dieser:
Nun, wenn Sie laden Sie das Projekt,
DoCommands.cs
sollte unterMain.cs
nur alsMain.Designer.cs
. Ich Tat beachten Sie, dass die VS scheinen hinzufügenSubType
element automatisch an, so dassDoCommands.cs
wird, noch in dem Forms-Designer standardmäßig. Vielleicht gibt es eine einfache Lösung, um für diese als gut.Ich bin mir ziemlich sicher, dass Sie nicht haben, um geben Sie alle Erbschaften für eine partielle Klasse. Also, wenn Sie nur drop-System.Windows.Formen.Form aus dem Erbe-Liste für die DoCommands.cs-Datei sollten Sie golden.
Bearbeiten: Auch in Anbetracht der Größe der Haupt-form, möchten Sie vielleicht zu prüfen, refactoring. Betrachten Sie Folgendes eine MVC oder MVP Muster. Trennen Sie Ihr Anliegen in die eigenen Klassen-und vielleicht sogar Module.
Ihrer teilweisen form der Erweiterung nicht brauchen, um Erben von System.Windows.Formen.Form - genau wie Ihre PipeServerform.designer.cs nicht Erben, es.
Ich verwendet Vererbung eher als eine partielle Implementierung die Aufteilung von form-features über mehrere Dateien, ohne in das leere designer-Formular beim öffnen der sekundären Datei.
[MainForm.cs]
[MainForm.Designer.cs]
[MainForm.Funktion.cs]
Dann, wie oben erwähnt, Bearbeiten Sie Ihr Projekt-Datei, und fügen Sie die folgenden für Ihre Feature-Datei zu zeigen, bis neben die Designer in Ihren Projektmappen-explorer.
Es ist die einzige Lösung, die ich finden konnte, um es gut funktionieren in Visual Studio ohne das leere designer-form. Es wird wahrscheinlich auch Sinn macht, aus einem Objekt-design-Sicht.