VB6 Sub Main() vs. VB.net Sub Main()

  • WPF

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von SpaceyX.

    VB6 Sub Main() vs. VB.net Sub Main()

    Ich möchte eine klassiche Windows Forms bzw. WPF Anwendung erstellen, diese aber mit Sub Main() und nicht mit einem Formular starten lassen. Die Sub Main() soll das Formular dann nachladen. Ist das bei WindowsForms und WPF überhaupt möglich?
    @McKloony In WinForm passiert das tatsächlich auch, nur ist das ganze in der VisualBasic-Runtime gekapselt.
    Wenn Du ein C#-WinForm-Projekt erstellst, wird Dir diese Main() automatisch mit generiert.
    Du müsstest ein VB-Console-Projekt erstellen und dann alles Notwendige in die Sub Main() reeinpacken und auch die entsprechenden DLLs als Verweis hinzufügen.
    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!
    Ist dass denn so üblich oder wird das eher nicht empfohlen. Ich möchte nämlich das Form Objek erst anzeigen, wenn die Verbindung zur Datenbank steht und allemöglichen Einstellungen aus der Konfigdatei geladen wurden.
    Das ist aber ein ungünstiger Weg. Besser ist es entweder, das Form zu deaktivieren und wenn alles geladen ist, es zu reaktivieren. Und/oder zusätzlich einen Ladebalken anzuzeigen. Aber sonst würde der User die App starten, es würde sich scheinbar nix tun, er startet sie nochmal und nochmal und irgendwann hat er 3 offene Apps und denkt sich: Was'n Mist.

    ##########

    Zum Thema Sub Main: In der Application.Designer.VB (zu finden bei WinForms im Projektexplorer unter Projektmappe -> Projektname -> My Project -> Application.MyApp -> Application.Designer.VB gibt es die Subs New und OnCreateMainForm. Diese sind dann der Main-Ersatz in WinForms - AFAIK.
    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“ ()

    @VaporiZed Kannste per SingleInstance verhindern.
    @McKloony Mach Dir einen SplashScreen, der so lange aktiv ist, wie das Laden halt dauert.
    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!
    Hi,

    siehe Bild... Unter MyProject -> Application -> Haken bei "Enable application framework" raus, dann als Startup object SubMain auswählen. Dem Project eine Klasse hinzufügen, die die Sub Main enthält. In dieser dann folgende Zeilen einfügen...



    VB.NET-Quellcode

    1. Public Class Program
    2. <STAThread>
    3. Public Sub Main()
    4. Application.EnableVisualStyles()
    5. Application.SetCompatibleTextRenderingDefault(False)
    6. Application.Run(New Form1())
    7. End Sub
    8. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o