Soy un novato y estoy aprendieno a programar en VB 2012. Necesito ayuda con lo sigunete:
Quiero agreagar un progressbar a mi programa para que se llene dependiendo en cuantos segundos faltan para que llege al valor ingreso en un TextBox. El Valor ingreso en un text box es comparado con un valor de un timer (cronometro) . Mi codigo abajo:
-----------------------------------------------------
Public Class Form1
Private hour As Integer = 0
Private minute As Integer = 0
Private second As Integer = 0
Public Sub show_time()
second += 1
If second = 59 Then
second = 0
minute += 1
If minute = 59 Then
minute += 1
hour += 1
End If
End If
Label3PrgressStdPC.Text = hour.ToString.PadLeft(2, "0") & ":"
Label3PrgressStdPC.Text &= minute.ToString.PadLeft(2, "0") & ":"
Label3PrgressStdPC.Text &= second.ToString.PadLeft(2, "0")
Label3PrgressStdPC.Refresh()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
show_time()
TextBox1.SelectedText = TextBox1.Text
If TextBox1.SelectedText = Label3PrgressStdPC.text Then
Timer1.Stop()
MsgBox("time is up")
End If
End Sub
Private Sub Bn_start_St01_Click(sender As Object, e As EventArgs) Handles Bn_start_St01.Click
Timer1.Start()
Timer2.Start()
Timer1.Enabled = True
Timer2.Enabled = True
End Sub
Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint
End Sub
Private Sub ProgressBar1_Click(sender As Object, e As EventArgs) Handles ProgressBar1.Click
ProgressBar1.Maximum =???????????????????
ProgressBar1.Minimum = 0
Timer2.Interval = 1000
End Sub
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
ProgressBar1.Value = val
val = ????????????????????????
If (?????????? = ???????????) Then
Timer2.Stop()
End If
End Sub
End Class
--------------------------------------------------------------------
Sugerencias :huh:?
Muchas Gracias
Debes saber el maximo de tiempo que procesara el progresbar. Por ejemplo, si dices que el tiempo máximo lo tomas de un textbox, entonces debería ser
ProgressBar1.Maximum = Val(Text1.Text)
El Valor inicial del PB debes hacerlo en el FormLoad(en verdad no estoy seguro como funciona el PB en vb2012)
Después debes sumar el valor inicial por 1 hasta que llegue al valor final.
Do While Not Timer1.Stop
ProgressBar1.Value = ProgressBar1.Value + 1
Do Events ' no estoy seguro si esta sentencia funciona en VB2012
Loop
'asdf
Espero que esto te de alguna idea, dejare un código que uso para hacer una carga en una pantalla de inicio. Debes tener en cuenta que esto esta hecho en VB6.0
Private Sub Form_Activate()
Set rs = LoadRecordSet("SELECT * FROM CLLDB ORDER BY Material")
ProgressBar1.Max = rs.RecordCount
ProgressBar1.Value = 0
Do While Not rs.EOF
ProgressBar1.Value = ProgressBar1.Value + 1
DoEvents
rs.MoveNext
Loop
Form6.Show
Unload Me
End Sub
Private Sub Form_Load()
ProgressBar1.Min = 0
End Sub
Saludos.
Como sugerencia te digo que el code de FranciskoAsdf es correcto, y que deberias manipular tu PB en cualquier VB con los valores de 0 y 100(Propiedades Min & Max en V6)
A veces el valor que queres controlar es mayor, podrias buscar la forma de convertir o "trasladar" esos valores siempre asumiendo un rango de 0~100 para evitar confusiones, al menos a mi me ha servido de mucho en un inicio ya que al momento de hacer "cuentas" en el PB solo me queda un rango de numeros completamente unico(0/100)
Saludos.