1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Progress Bar

Discussão em 'Programação' iniciada por Windows Dragon, 21 de Maio de 2009. (Respostas: 2; Visualizações: 737)

  1. Windows Dragon

    Windows Dragon Power Member

    Como fazer aumentar o progresso de uma Progress Bar o codigo que tenho agora é
    PHP:
    Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick
    Dim startTime 
    As DateTime
    Dim span 
    As TimeSpan DateTime.Now.Subtract(startTime)
    Label3.Text span.Seconds.ToString
    If Label3.Text "1" Then
    ProgressBar1
    .Value ProgressBar1.Minimum
    ElseIf Label3.Text "3" Then
    Label4
    .Text "Connecting."
    ElseIf Label3.Text "6" Then
    Label4
    .Text "Connecting.."
    ElseIf Label3.Text "9" Then
    Label4
    .Text "Connecting..."
    ElseIf Label3.Text "12" Then
    Label4
    .Text "Connecting...."
    ElseIf Label3.Text "15" Then
    Label4
    .Text "Connected"
    sas.Visible True
    Label5
    .Visible True
    Label6
    .Visible True
    ElseIf Label3.Text "18" Then
    Label6
    .Text "Connecting."
    ElseIf Label3.Text "21" Then
    Label6
    .Text "Connecting.."
    ElseIf Label3.Text "24" Then
    Label6
    .Text "Connecting..."
    ElseIf Label3.Text "27" Then
    Label6
    .Text "Connecting...."
    ElseIf Label3.Text "30" Then
    Label6
    .Text "Connected"
    ProgressBar1.Value ProgressBar1.Maximum
    ElseIf Label3.Text "31" Then
    cod4c
    .MdiParent MDIFORM
    cod4c
    .Show()
    cod4s.Close()
    Me.Close()
    End If
    End Sub
    Mas quando o timer chega aos 30 Segundows é que a barra começa a aumentar
    Mas se alguem me arranjar um codigo diferente na Boa
    Linguagem:VB 2008
    Alguem me pode ajudar
     
    Última edição: 21 de Maio de 2009
  2. PNDmartins

    PNDmartins Power Member

    Primeiro: Granda confusão.
    Segundo: É normal que a barra não te aumente progressivamente quando apenas lhe estás a dar valores no ".Text = 1" e no ".Text = 30", ou seja, no inicio do ciclo e no fim do ciclo.

    Aqui fica um código que faz basicamente o que tu queres, usando apenas 2 labels (depois altera para meteres as labels que quiseres) e muito mais compreensivel.

    Código:
    Private TempoDecorrido As Integer = 0
    Private ValorAumentar As Integer = 0
    
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    
            TempoDecorrido += 1
            ProgressBar1.Value = TempoDecorrido
            Label2.Text = TempoDecorrido
    
            If ValorAumentar = 0 Then ValorAumentar += 3
    
            If TempoDecorrido = ValorAumentar Then
                If String.IsNullOrEmpty(Label1.Text.Trim) = True Then
                    Label1.Text = "Connecting"
                Else
                    If Label1.Text.Trim.Contains("...") = True Then
                        Label1.Text = "Connecting"
                    Else
                        Label1.Text &= "."
                    End If
                End If
    
                ValorAumentar += 3
            End If
    
            If TempoDecorrido = 30 Then
                Timer1.Enabled = False
                TempoDecorrido = 0
                ValorAumentar = 0
            End If
        End Sub
    
    Tens que meter o .inteval do timer a 1000, ou seja, a cada 1 segundo, este código vai ser corrido.

    Se o quiseres testar e analisar, cria um form vazio, coloca 1 progressbar, 2 labels e um butao.

    Coloca o código acima entre:

    Código:
    Public Class Form1
    
    End Class
    
    E no click do butão mete este código:

    Código:
    Timer1.Interval = 1000
    Timer1.Enable = True
    
     
  3. Windows Dragon

    Windows Dragon Power Member

    Brigado o problema ja está resolvido
     

Partilhar esta Página