Was ist der beste Weg, um ein Formular aus einem Projekt in ein anderes Projekt innerhalb einer Lösung in Visual Studio zu kopieren oder ausschneiden/einfügen?
Bei jedem Versuch mit dem Lösungs-Explorer (Ziehen und Ablegen oder Rechtsklicken auf Ausschneiden und Vorbeifahren) werden nur der zugrunde liegende C # -Code und nicht die erforderlichen "Bits und Teile" kopiert, mit denen Sie das Formular über den Formular-Designer visualisieren können.
Habe es herausgefunden - wusste, dass es etwas Dummes sein würde.
Anscheinend sollte das Zielprojekt die Referenzen haben:
das Projekt sollte zu ERSTEN vor dem Kopieren oder Einfügen verwendet werden. Andernfalls wird das von mir beschriebene Problem angezeigt.
Danke für jeden, der versucht hat, BTW zu helfen.
.cs
, .designer
, resx
in den Zielordner der Lösung.Add existing item
aus und fügen Sie zuerst die Designer-Datei hinzu. .cs
-Datei sollte ebenfalls eingehen. .cs
-Datei.resx
-Datei mit Add existing item
hinzu.Um ein Formular aus einem VS2013-Projekt in ein anderes zu kopieren, gilt Folgendes (am wenigsten Mausklicks):
Klicken Sie in Ihrem Zielprojekt mit der rechten Maustaste auf Ihren übergeordneten Ordner (wahrscheinlich Ihr Projekt) und wählen Sie im Menü "Hinzufügen; Vorhandenes Element".
Wählen Sie dann die cs-Datei des Formulars in Ihrem Quellprojekt aus. Wählen Sie beispielsweise Form.cs aus (nicht Form.Designer.cs oder Form.resx).
Öffnen Sie Form.cs in Ihrem Zielprojekt und ändern Sie den Namespace (alle Instanzen).
Schließen Sie Form.cs und öffnen Sie sie erneut. Sie sehen dann alle Steuerelemente usw.
Es ist jetzt in 2012 viel einfacher. Gehen Sie zu Datei> Hinzufügen> Vorhandenes Projekt> Ziehen Sie das Formular in das Projekt, zu dem Sie es hinzufügen möchten.
Ich habe den folgenden Prozess in Visual Studio 2012 ausprobiert und es hat funktioniert.
Stellen Sie sicher, dass Sie nicht nur die Form.cs, sondern auch die Dateien Form.designer.cs und Form.resx kopieren.
Ich muss jedoch fragen, warum Sie eine Kopie desselben Formulars in mehreren Projekten in derselben Lösung beibehalten möchten. Klingt so, als ob Sie den Code darin verallgemeinern möchten, ihn in eine Klassenbibliothek legen und ihn an den Stellen wiederverwenden möchten, an denen er anwendbar ist.
Verwenden Sie ReSharper (Demo anfordern), klicken Sie mit der rechten Maustaste auf die Klasse in Codeansicht, Refaktor -> Verschieben, und verschieben Sie sie in ein anderes Projekt.
Der zusätzliche Vorteil besteht darin, dass alle Verweise automatisch aktualisiert werden, wenn Sie den Namespace ändern, indem Sie ihn zwischen Projekten verschieben.
Wenn Sie in derselben Maschine Formulare erstellen möchten, können Sie dies einfach tun.
Im Projektmappen-Explorer Projekt -> Hinzufügen -> Vorhandenes Element hinzufügen .
Wählen Sie nur die .cs (Sample.cs)
-Datei aus dem Quellverzeichnis und aktualisieren Sie den aktuellen Lösungs-Explorer.
Für Visual Studio V.12 ist dies die einzige Methode, die für mich funktioniert hat (es ist eine Mischung aus obigen Einträgen):
Wenn Sie dasselbe Formular in verschiedenen Projekten verwenden müssen, lautet die Lösung: Erstellen Sie ein "Klassenbibliotheksprojekt". Fügen Sie zu diesem Projekt die Formulare hinzu, die Sie freigeben möchten, und fügen Sie dann einfach den Verweis auf die DLL zu Ihrem Hauptprojekt hinzu kann leicht auf Formulare verweisen. Es funktioniert perfekt für mich
Mit VS2013 wurde dies gerade getestet und es erscheint zuverlässig und konsistent. Dies ähnelt einigen Kommentaren oben, fügt jedoch eine andere Methode hinzu, die schneller ist.
(1st) Markieren und kopieren Sie im Windows File Explorer alle 3 Formulardateien (.vb oder .cs, .designer, .resx).
(2nd) Dies kann auf zwei Arten erreicht werden:
(2a-1) Fügen Sie im Datei-Explorer die 3 Dateien zusammen mit Ihren anderen Formularen in den Projektordner ein
(2a-2) Aktivieren Sie im VS Solution Explorer "Alle Dateien anzeigen", klicken Sie mit der rechten Maustaste auf das eingefügte Formular und "In Projekt einbeziehen". Es sollte ohne andere Änderungen funktionieren.
Oder ich denke besser:
(2b-1) Klicken Sie in VS in den Projektmappen-Explorer und fügen Sie sie mit Strg-C ein. (Aus irgendeinem Grund zeigt das Kontextmenü im Projektmappen-Explorer möglicherweise keine Einfügeoption an, kann jedoch über die Tastatur ausgeführt werden.) Bei dieser Methode wird das Formular direkt dem Projekt hinzugefügt, ohne dass es wie oben beschrieben in "Projekt einschließen" erforderlich ist. Mit dieser Methode können Sie beliebig viele Formulare auf einmal (alle drei Dateien) in einem einzigen Schritt hinzufügen.
Wählen Sie die Datei aus oder verwenden Sie den Designer, um alle Steuerelemente zu "kopieren"? Wenn Sie die YourForm.cs
-Datei im Projektmappen-Explorer auswählen und per Kopieren und Einfügen oder Ziehen und Ablegen in ein anderes Projekt kopieren, ist das, was Sie benötigen.
Ich verwende Visual Studio 2010. Nachfolgend sind die Schritte aufgeführt, die ich ausgeführt habe:
Ich habe die folgenden Schritte ausprobiert und es hat gut funktioniert.
** Dieser arbeitet für mich:
1) Kopieren Sie die Quelldateien (.cs oder vb, .designer, .resx) in den Zielordner
2) Zeigen Sie versteckte Dateien in der Ziellösung an
3) Wählen Sie diese Dateien aus und fügen Sie sie in das Projekt ein.
Dadurch werden Winform oder andere teilweise unterteilte Dateien sauber hinzugefügt.
Klicken Sie in Visual Studio 2015 auf Solution Explorer und klicken Sie mit der rechten Maustaste auf Add-> Existing Item und wählen Sie aus einem anderen Projekt das Formular aus, das Sie wie Form.cs und automatisch Form.designer.cs hinzufügen möchten. Form.resx wird hinzugefügt
Wenn Sie VS 2015 verwenden, müssen Sie nur die ".vb" -Datei hinzufügen und den Namensraum durch einen neuen Projektnamen ändern.
Beispiel: Sie möchten "Form1", das mit VS2008 erstellt wurde, zu einem neuen Projekt hinzufügen, das mit VS2015 erstellt wurde.
Diese beiden Schritte haben bei mir funktioniert.