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