Partial Form1

  • VB.NET
  • .NET 9

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Partial Form1

    Hallo,

    wenn ich den Code für Form1 mit Partial aufteile, dann erhalte ich den Kompilierfehler: Zwei Ausgabedateinamen wurden zumselben Ausgabepfad aufgelöst: "[...]Form1.resources"
    Also Form1.vb fängt mit Public Class Form1 an
    Form1.Designer.vb mit Partial Class Form1
    und die von mir erzeugte Form1Function.vb mit Partial Class Form1


    Was muss man da noch machen?

    Edit: Habe die Form1Function.resx gelöscht und nun gehts.
    Wenn ich die Form1Function.vb doppelklicke, dann öffnet sich ein neues Form und diese resx wird erzeugt.
    Kann man das so einstellen dass nur der Code aufgerufen wird wie bei der Designer Klasse?

    Viele Grüße

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Haudruferzappeltnoch“ ()

    @Haudruferzappeltnoch Nicht Net 9, aber Framework:
    Ich benenne meine Dateien so:
    Form1.vb
    Form1.Designer.vb
    Form1.resx
    Form1.A.vb
    Form1.B.vb
    usw.
    In der (Framework)-vbproj
    müssen dann die "neuen" Dateien mit DependentUpon an die Form1.vb
    gekoppelt werden, dadurch kommen alle partiellen Dateien in eine Liste.
    Wie das bei Net 9 aussieht, musst Du selbst rauskriegen.
    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!
    Das geht bei NET 9 anscheinend auch, allerdings muss man den gesamten ItemGroup Block erstellen.

    XML-Quellcode

    1. <ItemGroup>
    2. <Compile Update="Form1.Designer.vb">
    3. <DependentUpon>Form1.vb</DependentUpon>
    4. </Compile>
    5. <Compile Update="Form1.Function.vb">
    6. <DependentUpon>Form1.vb</DependentUpon>
    7. </Compile>
    8. </ItemGroup>

    Zum Einen ist das merkwürdig weil Form1.Designer vorher schon "richtig" eingebunden ist, ohne dass es in der vbproj steht.
    Zum Anderen kann ich jetzt auch mit Doppelklick auf den Code wechseln aber die Datei wird noch als Form-Bildchen dargestellt:


    Möglicherweise ist das also noch nicht der Weisheit letzter Schluss.

    Haudruferzappeltnoch schrieb:

    Das geht bei NET 9 anscheinend auch, allerdings muss man den gesamten ItemGroup Block erstellen.
    Ja, es geht aber in .NET einfacher als in .NET-Fx, vor allem, wenn jedes Form seinen eigenen Dateiordner hat:

    VB.NET-Quellcode

    1. <ItemGroup>
    2. <Compile Update="UI\FrmMain\*.vb">
    3. <DependentUpon>FrmMain.vb</DependentUpon>
    4. </Compile>
    5. </ItemGroup>

    Deshalb habe ich in meinen Projekten immer einen Ordern UI und darin die verschiedenen Forms mit eigenem Ordner. Dann kann ich die SubFiles immer gleich benennen, und zwar nach ihrem generellen Inhalt (GuiManipulation.vb, Integration.vb, Commands.vb, Queries.vb, …) und komm nicht in Namenskonflikte.

    Haudruferzappeltnoch schrieb:

    Zum Anderen kann ich jetzt auch mit Doppelklick auf den Code wechseln aber die Datei wird noch als Form-Bildchen dargestellt
    Ja, da unterscheiden sich .NET-Fx und .NET auch. In .NET-Fx sind diese SubDateien mit dem VB-Icon gekennzeichnet, in .NET leider nicht :/
    Allerdings ist bei meiner Lösung auch die Designer.VB mit dem Formsymbol versehen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

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