Forum: PC-Programmierung Zweite Form komplett laden [Visual Basic .NET 2010]


von Debugger (Gast)


Lesenswert?

Hallo,

Ich arbeite gerade an einem projekt, das ein paar Datenbankabfragen und 
sonst noch ein paar Dinge durchführt, die einige Sekunden dauern (ca 10 
sekunden zusammen). Das Ganze passiert in der Main-Form.

Nun möchte ich eine zweite Form Laden, die Anzeigt was gemacht wird und 
einen Progressbar beinhaltet.

So weit so gut, das habe ich versucht zu realisieren, ich öffne die Form 
auf der der Text stehen sollte, jedoch bleibt das Label und alle 
restlichen Steuerelemente durchsichtig und wird erst sichtbar wenn alle 
Aktionen durchgeführt wurden.
1
Dim import_wait_form As New Form_Import_Wait()
2
import_wait_form.Show()
3
4
While 
5
'...... Hier kommen die ganzen Abfragen etc
6
End While
7
8
import_wait_form.Close()

wie bringe ich ihn dazu, die Wait Form komplett zu laden und erst dann 
mit der Abarbeitung zu beginnen?

von Arc N. (arc)


Lesenswert?

Debugger schrieb:
>
1
> Dim import_wait_form As New Form_Import_Wait()
2
> import_wait_form.Show()
3
> 
4
> While
5
> '...... Hier kommen die ganzen Abfragen etc
6
> End While
7
> 
8
> import_wait_form.Close()
9
>
>
> wie bringe ich ihn dazu, die Wait Form komplett zu laden und erst dann
> mit der Abarbeitung zu beginnen?

Entweder auf die harte Tour mit Application.DoEvents() oder indem man 
den langwierigen Teil z.B. in einem BackgroundWorker macht.
http://msdn.microsoft.com/de-de/library/system.componentmodel.backgroundworker.aspx

von Debugger (Gast)


Lesenswert?

Danke für deine Antwort,

Das Mit Application.DoEvents() funktioniert super, nur die progressbar 
rennt nicht (klar). Jetzt wird es eben eine Message ohne Progressbar.

Nächstes Mal bau ich einen backgounworker ein, dieses mal belasse ich es 
so :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.