Anwendungs-Start

17/10/2007 - 19:48 von Michael Vollmer | Report spam
Hallo NG,

wie kann man eine Anwendung dazu bringen, erst einen Begrüßungsbildschirm
(Splash-Form) anzuzeigen und erst wenn alle Operationen (z.B. einige
Datenbankabfragen) abgeschlossen sind die Hauptform zu zeigen.
Grund dafür ist, dass auf der Hauptform viele Steuerelemente sitzen und
diese mit Daten gefüllt werden müssen und sowie ja stàndig neu gezeichnet
werden. Somit bleibt das Bild wirklich weiß, bis alles vollstàndig ist.
Schöner wàre es, wenn alles im Hintergrund passiert und für die Operationen
einen Info-Screen mit z.B. ProgressBar angezeigt wird.

Vlt. habt ihr Anregungen und Beispiele für mich.

mfg
Micha
 

Lesen sie die antworten

#1 Peter Fleischer
17/10/2007 - 20:54 | Warnen spam
Michael Vollmer wrote:
Hallo NG,

wie kann man eine Anwendung dazu bringen, erst einen
Begrüßungsbildschirm (Splash-Form) anzuzeigen und erst wenn alle
Operationen (z.B. einige Datenbankabfragen) abgeschlossen sind die
Hauptform zu zeigen. Grund dafür ist, dass auf der Hauptform viele
Steuerelemente sitzen und diese mit Daten gefüllt werden müssen und
sowie ja stàndig neu gezeichnet werden. Somit bleibt das Bild
wirklich weiß, bis alles vollstàndig ist. Schöner wàre es, wenn alles
im Hintergrund passiert und für die Operationen einen Info-Screen mit
z.B. ProgressBar angezeigt wird.




Hi Micha,
nachfolgend eine Demo für eine mögliche Prinziplösung. Kopier den Code in
ein Modul einer VB-Windows-Anwednung mit Start von Sub Main (in den
Projekteigenschaften).

Module Module1

Sub main()
Application.Run(New frm1)
Application.Run(New frm2)
End Sub

End Module

Class frm1
Inherits Form
Dim pb As New ProgressBar
Sub New()
Me.Text = "Splash-Form"
Me.Controls.Add(pb)
With pb
.Dock = DockStyle.Bottom
.Maximum = 100
End With
Dim t As New Windows.Forms.Timer
With t
.Interval = 100
AddHandler .Tick, AddressOf tick
.Start()
End With
End Sub
Private Sub tick(ByVal sender As Object, _
ByVal e As EventArgs)
pb.Value += 1
If pb.Value = 100 Then
CType(sender, Windows.Forms.Timer).Stop()
Me.Close()
End If
End Sub
End Class

Class frm2
Inherits Form
Sub New()
Me.Text = "Haupt-Form"
End Sub
End Class


Viele Grüße

Peter

Ähnliche fragen