Announcement

Collapse
No announcement yet.

Applicationstyp (Sub Main)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Applicationstyp (Sub Main)

    Guten Morgen zusammen

    mein VB.Net Fernstudium ist schon einige Zeit her. Ich habe zwar u.a gelernt wie man eine Application erstellt, aber mich nicht mit den Applicationstypen auseinandersetzt.

    Nun wollte ich gerne mehere Forms unabhängig von einander starten bzw. schließen. Dazu habe ich gelernt das ich das in einer Sub Main (Modul) defenieren muß. Dies habe ich getan. Nun aber meine Frage.

    Bei den Projekteigenschaften kann einmal als (Output Typ) "Windows Service", "Console Application", "WindowsApplication" etc. einstellen. Als Standard ist ja immer Windows Application ausgewählt. Da kann ich dann nur Forms als erstes Startfenster auswählen. Erst bei Windows Service habe ich die Möglichkeit neben Forms auch Module etc. zu wählen- Ist dies so korrekt?

    Kann mir jemand dies bestätigen bzw. den Unterschied zwischen dne beiden nennen. Ich glaube als Windows Service bedeutet, das dies auch als Windows Dienst gestartet werden kann?

    LG Marja

  • #2
    Hallo Marja,

    da ich mich mit den VB-Begriffen wie Module nicht auskenne und mit Windows Services (= Dienste) noch nicht befasst habe, kann ich nur teilweise antworten. Damit du aber nicht zu lange warten musst, sollst du auch diese unvollständige Antwort bekommen.

    In einer .NET-Anwendung kann, darf und muss es genau eine (public static) Main-Methode geben. Diese ist das Hauptprogramm der Anwendung.

    Der "äußere" Unterschied zwischen Console-Anwendung und Windows-Anwendung dürfte klar sein, nicht wahr? In beiden Fällen ist die Main-Methode der Ausgangspunkt der Anwendung; wenn sie abgearbeitet ist, dann ist die Anwendung zu Ende.

    Bei einer Console-Anwendung steht alles, was passieren soll, innerhalb von Main bzw. wird von dort aus aktiviert.

    Bei einer Windows-Anwendung wird aus der Main-Methode heraus (in der Regel als letzter Befehl) ein bestimmtes Formular aktiviert, und zwar durch eine der beiden folgenden Varianten:
    [highlight=vbnet]// Variante 2 mit komplexer Vorarbeit
    Dim main As MainForm = New MainForm()
    // dann die Initialisierung dieses Formulars
    // dann die Aktivierung:
    Application.Run(main)

    // Variante 1 als einfacher Start
    Application.Run( New MainForm() )[/highlight]
    Es gibt auch noch andere Verfahren, z.B. mit ApplicationContext. Wichtig ist, dass dabei genau ein Formular für Windows als Hauptformular registriert wird. Wenn dieses Formular geschlossen wird, kehrt die Anwendung zu Main zurück; weil dort nichts mehr zu machen ist, wird die Anwendung beendet.

    In der Main-Methode kannst du vorher noch verschiedene andere Sachen machen, z.B. ein SplashForm starten und schließen, ein LoginForm einbauen, Datenklassen erzeugen u.v.a.

    Gruß Jürgen

    Comment


    • #3
      Danke dir für deine Antwort.

      Ich habe meinen Fehler gefunden.

      In den Projekteinstellungen war das Häckchen bei "Anwendungsframework aktivieren" gesetzt. Aus diesem Grund muß das Startobjekt eine Form sein. Häkchen habe ich entfernt und somit konnte ich die Sub Main als erstes starten lassen. Der Anwendungstyp ist Windows Forms Anwendung.

      LG und Danke MArja

      Comment

      Working...
      X