Vorhandene Form hinzufügen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von JLH.

    Vorhandene Form hinzufügen

    Ich würde gerne eine vorhandene Form zu eine neuen Projekt mit "Projekt/Vorhandenes Element hinzufügen..." hinzufügen. Das klappt auch eigentlich. Lieder ist die Form und alle darauf befindlichen Controls aber geschrumft. Mach ich da was flasch oder warum ist da alles klener geworden?
    @JLH Du musst alle zur Form gehörenden Dateien markieren und hinzufügen oder diese mit D&D auf das Verzeichnis ziehen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany Danke, aber das mit "alle zur Form gehörende..." hat nicht geklappt. Was genau meinst Du mit "auf das Verzeichnis ziehen"? Die Dateien aus dem urspünlichen Ornder kopieren und in den Neuen einfügen?
    Spielt es eine Rolle, daß die Form aus einer .NET Windows Forms App kommt? Die neue ist eine .NET Framework.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JLH“ ()

    @JLH "Ziehen" heißt D&D.
    Ordner ist der Ordner im Projekt-View des Studios, Herkunft ist der Explorer.
    Spielt es eine Rolle ...?
    Wenn Herkunft und Ziel verschiedene NET- und -Framework-Versionen sind, musst Du aufpassen, bei mir kommen keine Kreuz-Hinzufügungen vor.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also man muss sie ja vielleicht nicht generell überarbeiten. Aber Inkompatibilitäten können zwischen verschiedenen Systemen vorkommen. Das ist doch normal.
    Außerdem spart man sich trotzdem Zeit als die Form von Grund auf herzurichten, wobei bei dir natürlich noch nicht klar ist, was genau der Fehler sein mag.

    Hast du mal versucht einfach den Designer-Inhalt zu kopieren?

    JLH schrieb:

    Welchen Sinn hat das Zufügen einer Form wenn man sie dann eh überarbeiten muß?
    Z.B. wenn die Settings im Herkunftsprojekt Settings und im Zielprojekt MySettings heißen.
    Ziehen nach da hin (markierte Zeile, je nachdem, wie Dein Projekt strukturiert ist):

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ErfinderDesRades Ja, richtig erkannt. Aber ich möchte zurück zu .NET Framework 4.8. Ich wollte damit sagen, es dürfte eigentlich keine Inkompatibilitäten geben.
    @RodFromGermany Ich meinte damit wozu gibt es eine Import-Funktion wenn diese es falsch importiert? Da kann ich ja gleich den Grafikteil per Hand neu machen und den Code mit d&d hinzufügen.

    Ich habe jetzt mal per d&d von einem Projektmappen-Explorer in den anderen kopiert. Also original rechts angeklickt, im Kontextmenü "kopieren" gewählt, im Neuen auf den Projektnamen rechts geklickt und "Einfügen" im Kontextmenü gewählt. Denke ich hab jetzt kappiert was Du meintest Rod... Es wird der komplette, ich nenn's mal Ordner, "Form1.vb" hinzugefügt. Darin, wie beim original, der Ordner "Form1.Designer.vb" und darin der Ordner "Form1.resx". Alles schick. Aber die Sizes stimmen in den Eigenschaften nicht überein. Hier mal der Code von einem original Control:

    VB.NET-Quellcode

    1. '
    2. ' grpEingabe2
    3. '
    4. grpEingabe2.Controls.Add(lblUni)
    5. grpEingabe2.Controls.Add(txtUni2)
    6. grpEingabe2.Controls.Add(txtUni1)
    7. grpEingabe2.Controls.Add(lstParameter)
    8. grpEingabe2.Font = New Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point)
    9. grpEingabe2.Location = New Point(400, 15)
    10. grpEingabe2.Name = "grpEingabe2"
    11. grpEingabe2.Size = New Size(345, 85)
    12. grpEingabe2.TabIndex = 4
    13. grpEingabe2.TabStop = False
    14. grpEingabe2.Text = " Mausklick oder 'F4' öffnet das Listenfeld "


    Und hier die Fälschung:

    VB.NET-Quellcode

    1. '
    2. 'grpEingabe2
    3. '
    4. Me.grpEingabe2.Controls.Add(Me.lblUni)
    5. Me.grpEingabe2.Controls.Add(Me.txtUni2)
    6. Me.grpEingabe2.Controls.Add(Me.txtUni1)
    7. Me.grpEingabe2.Controls.Add(Me.lstParameter)
    8. Me.grpEingabe2.Font = New System.Drawing.Font("Segoe UI", 9.0!)
    9. Me.grpEingabe2.Location = New System.Drawing.Point(343, 13)
    10. Me.grpEingabe2.Name = "grpEingabe2"
    11. Me.grpEingabe2.Size = New System.Drawing.Size(296, 74)
    12. Me.grpEingabe2.TabIndex = 4
    13. Me.grpEingabe2.TabStop = False
    14. Me.grpEingabe2.Text = " Mausklick oder 'F4' öffnet das Listenfeld "


    Ich sehe auch die Unterschiede, aber kann man da was machen damit das wieder gleich wird? Zumindest die Size und Location?
    Zwischenzeitlich habe ich gefunden, daß man unter "Extras/Optionen/Umgebung/Allgemein" den Hacken bei "Rendering für Bildschirme mit anderen Pixeldichten optimieren" entfernen soll um ein ähnliches Problem zu lösen. Bei mir hat es bewirkt, daß jetzt nach dem Import der Code im Designer zwar identisch aussieht, die Anzeige aber dennoch falsch ist. Curios ist jetzt allerding, daß wenn ich den Hacken wieder rein mache der Code jetzt beim erneuten Importieren gleich bleibt. Natürlich vorher gelöscht.

    Jetzt steht also im Designer alles richtig drin und denoch ist nach dem Starten alles kleiner???