ProgressBar?

wie muss ich eine ProgressBar programieren damit sie sich nach und nach füllt wenn man auf einen Button drückt?

Hallo,

wie muss ich eine ProgressBar programieren damit sie sich nach
und nach füllt wenn man auf einen Button drückt?

den mußt Du gar nicht programmieren, nur verwenden, der ist doch schon fertig.

Beim Start gibst Du den Maximalwert an, Progressbar1.Max = 100 z.B. wenn die Anzeige in % sein soll. Dann gibst Du mit Progressbar1.Value = Wert den aktuellen Wert an den Progressbar und der zeigt Dir das. Den Wert mußt Du selbst berechnen und immer wieder schreiben.

Gruß, Rainer

danke

so habe ich das zum ausprobieren geschrieben

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ProgressBar1.Value = 1
ProgressBar1.Value = 2
ProgressBar1.Value = 3
ProgressBar1.Value = 4
End Sub

ich möchte das so haben das zwischen dem erscheinen eines Balkens eine Verzögerung von einer Sekunde ist

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

so habe ich das zum ausprobieren geschrieben

Private Sub Button1\_Click\_1(ByVal sender As System.Object, \_
ByVal e As System.EventArgs) Handles Button1.Click
 ProgressBar1.Value = 1
 ProgressBar1.Value = 2
 ProgressBar1.Value = 3
 ProgressBar1.Value = 4
 End Sub

??? VB6 ist das aber nicht. Ist das VBA oder VB2005?

Für VB6 habe ich Dir mal ein Beispiel gschrieben, in dem der Fortschrittsbalken in zwei verschiedenen Varianten verwendet wird.

Auf der Form liegen ein Timer-Steuerelement (Timer1), ein Button (Command1) und ein Progressbar (ProgressBar1).

Wenn das Programm gestartet wird, läuft der Progressbar immer in fünf Schritten von null bis Maximal, jeweils mit einer Sekunde Pause.
Wird auf den Button geklickt, springt der Progressbar auf Null und wird in fünf Schritten bis auf Maximal gefüllt, wieder jeweils mit einer Sekunde Pause.

Hilft Dir das so?

Option Explicit

Private Sub Command1\_Click()
 Dim i As Byte
 Dim tm As Double
 Timer1.Enabled = False
 For i = 0 To 5
 ProgressBar1.Value = i
 'Warteschleife
 tm = Timer + 1
 While tm \> Timer
 DoEvents
 Wend
 Next
End Sub

Private Sub Form\_Load()
 Timer1.Interval = 1000
 Timer1.Enabled = True
 ProgressBar1.Max = 5
End Sub

Private Sub Timer1\_Timer()
 If ProgressBar1.Value 

Gruß, Rainer

ich hab vb2005

eigentlich funktioniert der code

nur der teil:

tm = Timer + 1
While tm > Timer
DoEvents()

funktioniert nicht

in den ersten beiden Zeilen ist das Wort Timer unterstrichen und die untere Zeile ist komplet unterstrichen

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

ich hab vb2005

dann sieh mal in die Brettbeschreibung. VB2005 ist ein paar Bretter weiter oben. ‚.NET und c#‘.

eigentlich funktioniert der code

nur der teil:

tm = Timer + 1
While tm > Timer
DoEvents()

funktioniert nicht

in den ersten beiden Zeilen ist das Wort Timer unterstrichen
und die untere Zeile ist komplet unterstrichen

Dann gibt es in VB2005 die Funktion ‚Timer‘ nicht so wie in VB6.
Das DoEvents kannst Du auch weg lassen, aber dann reagiert der Rechner in der Wartezeit auf nichts, Du kannst das Programm noch nicht mal beenden. Die Funktion muß es in VB2005 auch geben, nur weiß ich nicht, wie die heißt.

Heute Abend kann ich nachsehen, im Moment habe ich kein VB2005 zur Verfügung.

Gruß, Rainer

Zeitmessung in VB2005
Hallo,

nur der teil:

tm = Timer + 1
While tm > Timer
DoEvents()

funktioniert nicht

sieh Dir das mal an:
http://www.activevb.de/rubriken/vbdotnettipps/tipp00…

Das ist etwas komplizierter als in VB6, macht aber das Selbe.

Gruß, Rainer

hi,

Public Class Form1


 Dim StartZeit As Date = System.DateTime.Now
 Dim i, Ende As Integer


 Private Sub Button1\_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 Me.ProgressBar1.Value = 0
 Ende = 10
 Me.ProgressBar1.Maximum = Ende
 For i = 1 To Ende
 System.Threading.Thread.Sleep(1000)
 Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
 Next
 End Sub
End Class

Cu

1 Like