Visual Basic 2008: Es soll sich nur EINE MsgBox öffnen nachdem Progressbar voll ist. Wie schaff' ich das ?

Hallo, habe ein kleines Programm geschriben das folgendermaßen aussieht:
Man öffnet es, eine Progressbar beginnt sich zu füllen.
Nach 10 Sekunden ist sie voll. Sobald sie voll ist, soll sich eine MessageBox öffnen.
Das Problem:
Es öffnet sich nicht EIN Fenster, sondern unendlich viele ! Und ich hab einfach keine Ahnung, wie ich das beheben soll.
Hier der Code des Timers:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Timer1.Tick
ProgressBar1.Increment(1)
If ProgressBar1.Value = ProgressBar1.Maximum Then
MsgBox("Progressbar voll !")

End If
End Sub
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Warum wird die Aktion denn nicht nur Einmal ausgeführt, sondern solange wie die Progressbar voll ist ? :( Und: Wie schaff ich es so, wie ich es will ? Ich verzweifel und bitte um Hilfe.

Lg, -cReep

2010-04-12T11:03:42Z

Perfekt, hat funktioniert mit "Timer1.stop()". Hab nur keine Ahnung, wie du das mit der boolschen Variable meinst. :) Wäre nett, wenn du das noch ergänzen könntest.

Dan2010-04-12T09:34:03Z

Beste Antwort

Das Problem liegt daran dass du den Timer1 anhalten muss!! bevor die MsgBox erscheint!

So sollte es klappen oder so ähnlich..
Timer1.tick
ProgressBar1.Increment(1)
If ProgressBar1.Value = ProgressBar1.Maximum Then
Timer1.stop
MsgBox("Progressbar voll !")

ich hoffe ich konnte dir helfen

Hallo2010-04-12T16:38:35Z

Die Syntax ist ok.

Diese Subroutine ist fehlerfrei.

?2010-04-12T16:25:56Z

Ich kenne mich in Basic nicht aus, denke aber das die Inkrementation nicht mehr stattfindet, wenn die Progress-Bar einmal voll ist, und die If-Abfrage somit immer wahr ist. Du könntest innerhalb dieser If-Abfrage entweder den Timer stoppen - "Timer1.stop()" - oder eine boolsche Variable abfragen und beim ersten Aufruf umschalten, so dass trotz mehrmaligem Tick des Timers nur einmalig die MessageBox angezeigt wird.