Üblicherweise packt man seine Anwendungs-Initialisierung einfach ins Form_Load-Event des Forms, welches man in den Anwendungseinstellungen als StartUp-Form festgelegt hat.
Aber manchmal will man noch vor dem allerersten SichtbarWerden etwas erledigen, was entscheidend die Präsentation der Anwendung bestimmt.
Etwa ein LogIn mag bestimmen, welche Daten geladen werden, welches Form angezeigt, und ob überhaupt eines.
In solchen Fällen muß man halt in den Projekt-Eigenschaften das AnwendungsFramework deaktivieren, und eine Sub Main coden und als Einsprungspunkt der Anwendung festlegen.
Mit ein paar Anweisungen hat man auch händisch erledigt, was das AnwendungsFramework normalerweise für einen tut:
Also von Belang sind in diesem Sample die Zeilen #5, #6 und #22, #23.
Übrigens: Diese Art, ein WinForms-Programm zu starten ist in c# die einzige ühaupt mögliche.
Das Fehlen eines AnwendungsFrameworks in c# mag zwar primitiv erscheinen, aber eiglich isses doch transparenter vom Programm-Ablauf her.
Aber manchmal will man noch vor dem allerersten SichtbarWerden etwas erledigen, was entscheidend die Präsentation der Anwendung bestimmt.
Etwa ein LogIn mag bestimmen, welche Daten geladen werden, welches Form angezeigt, und ob überhaupt eines.
In solchen Fällen muß man halt in den Projekt-Eigenschaften das AnwendungsFramework deaktivieren, und eine Sub Main coden und als Einsprungspunkt der Anwendung festlegen.
Mit ein paar Anweisungen hat man auch händisch erledigt, was das AnwendungsFramework normalerweise für einen tut:
VB.NET-Quellcode
- Public Module Program
- <STAThread()> _
- Public Sub Main(ByVal commandLineArgs As String())
- Application.EnableVisualStyles()
- Application.SetCompatibleTextRenderingDefault(False)
- Dim frmStartup As Form = Nothing
- Using frmMenu As New frmMenu
- With frmMenu
- .ShowDialog()
- Dim activeCtl = .ActiveControl
- Select Case True
- Case activeCtl Is .btForm1 : frmStartup = New Form1
- Case activeCtl Is .btForm2 : frmStartup = New Form2
- Case activeCtl Is .btForm3 : frmStartup = New Form3
- Case activeCtl Is .btForm4 : frmStartup = New Form4
- Case activeCtl Is .btSettingsBinding : frmStartup = New frmSettingsBinding
- Case Else : Return
- End Select
- End With
- End Using
- Application.Run(frmStartup)
- My.Settings.Save()
- End Sub
- End Module
- #5: passt die Optik an das im Windows festgelegte Theme an
- #6: weiß ich garnet, was das macht - kann mir jmd helfen?
- #22: startet die eigliche Anwendung, legt das angegebene Form als Mainform fest. Die Anwendung beendet, wenn dieses Form geschlossen wird.
- #23: speichert bei Programm-Ende die Settings zurück (falls Veränderungen stattfanden - andernfalls: auch nicht schlimm)
Übrigens: Diese Art, ein WinForms-Programm zu starten ist in c# die einzige ühaupt mögliche.
Das Fehlen eines AnwendungsFrameworks in c# mag zwar primitiv erscheinen, aber eiglich isses doch transparenter vom Programm-Ablauf her.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()