none
Tela Inicial com progressbar vb RRS feed

  • Pergunta

  • Boa Tarde,

    Estou criando meu programa e quero adicionar uma tela inicial onde, ao carregar os forms, tenha um progressbar mostrar o processo de carregamento ao usuário. Quero que dê tempo para o usuário visualizar essa tela e depois de uns 15 segundos abra a tela de login.

    Se alguém puder passar código pra eu fazer testes seria muito daora!!!

    Fico no aguardo. Vlw!!

    sábado, 15 de fevereiro de 2014 18:35

Respostas

  • Suponho que o que você quer seja uma Splash Screen:

    Criando uma Splash Screen


    Herbert Lausmann


    • Editado Herbert Lausmann sábado, 15 de fevereiro de 2014 19:04
    • Marcado como Resposta Giovani Cr quinta-feira, 20 de fevereiro de 2014 12:23
    sábado, 15 de fevereiro de 2014 19:02
  • Existem várias maneiras de se fazer isso.Com timer,loop,thread...O jeito mais fácil seria com um Timer.

    No Visual Studio,adicione um timer no seu projeto com a propriedade Interval definida como 15000.Clique duas vezes sobre o Timer e adicione o seguinte código:

    timer.Stop()
    
    form.Show()
    Me.Hide()

    Aqui vão algumas observações:

    1)O nome timer refere-se ao nome do objeto Timer presente na sua aplicação (o que foi adicionado)
    2)O nome form refere-se ao nome do formulario que quer abrir (no caso,o formulário de login)
    3)O método Hide só faz esconder a aplicação,portanto,faz com que o formulário continue aberto,porém,invisível.O método Close é responsável por fechar o formulário,mas chamando este método no formulário principal vai fazer com que a aplicação termine.Para resolver isso,terá que mudar o Shutdown mode,presente em Project > Properties,na aba Application.
    4)Você DEVE usar o método Stop para evitar a abertura simultânea de formulários.

    • Marcado como Resposta Giovani Cr quinta-feira, 20 de fevereiro de 2014 12:23
    sábado, 15 de fevereiro de 2014 19:44

Todas as Respostas

  • Suponho que o que você quer seja uma Splash Screen:

    Criando uma Splash Screen


    Herbert Lausmann


    • Editado Herbert Lausmann sábado, 15 de fevereiro de 2014 19:04
    • Marcado como Resposta Giovani Cr quinta-feira, 20 de fevereiro de 2014 12:23
    sábado, 15 de fevereiro de 2014 19:02
  • Existem várias maneiras de se fazer isso.Com timer,loop,thread...O jeito mais fácil seria com um Timer.

    No Visual Studio,adicione um timer no seu projeto com a propriedade Interval definida como 15000.Clique duas vezes sobre o Timer e adicione o seguinte código:

    timer.Stop()
    
    form.Show()
    Me.Hide()

    Aqui vão algumas observações:

    1)O nome timer refere-se ao nome do objeto Timer presente na sua aplicação (o que foi adicionado)
    2)O nome form refere-se ao nome do formulario que quer abrir (no caso,o formulário de login)
    3)O método Hide só faz esconder a aplicação,portanto,faz com que o formulário continue aberto,porém,invisível.O método Close é responsável por fechar o formulário,mas chamando este método no formulário principal vai fazer com que a aplicação termine.Para resolver isso,terá que mudar o Shutdown mode,presente em Project > Properties,na aba Application.
    4)Você DEVE usar o método Stop para evitar a abertura simultânea de formulários.

    • Marcado como Resposta Giovani Cr quinta-feira, 20 de fevereiro de 2014 12:23
    sábado, 15 de fevereiro de 2014 19:44
  • Consegui...

    Está aí o código... Funcionou as dicas pro Splash Screen. Obrigado galera!!!

    Não ficou do jeito que eu queria. Fiz um progressbar que funciona porém não é pra mostrar o real carregamento do programa e sim só enfeite.

    Public Class frm_inicio
        Private Property ToolTip As String
        Private Sub frm_inicio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Timer1.Enabled = True
        End Sub
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            ProgressBar1.Increment(2)
            If ProgressBar1.Value = ProgressBar1.Maximum Then
                Timer1.Stop()
                frm_login.Show()
                Me.Hide()
            End If
            If ProgressBar1.Value = 2 Then
                Label1.Text = "LOADING... 2%"
            End If
            If ProgressBar1.Value = 4 Then
                Label1.Text = "LOADING... 4%"
            End If
            If ProgressBar1.Value = 6 Then
                Label1.Text = "LOADING... 6%"
            End If
            If ProgressBar1.Value = 8 Then
                Label1.Text = "LOADING... 8%"
            End If
            If ProgressBar1.Value = 10 Then
                Label1.Text = "LOADING... 10%"
            End If
            If ProgressBar1.Value = 12 Then
                Label1.Text = "LOADING... 12%"
            End If
            If ProgressBar1.Value = 14 Then
                Label1.Text = "LOADING... 14%"
            End If
            If ProgressBar1.Value = 16 Then
                Label1.Text = "LOADING... 16%"
            End If
            If ProgressBar1.Value = 18 Then
                Label1.Text = "LOADING... 18%"
            End If
            If ProgressBar1.Value = 20 Then
                Label1.Text = "LOADING... 20%"
            End If
            If ProgressBar1.Value = 22 Then
                Label1.Text = "LOADING... 22%"
            End If
            If ProgressBar1.Value = 24 Then
                Label1.Text = "LOADING... 24%"
            End If
            If ProgressBar1.Value = 26 Then
                Label1.Text = "LOADING... 26%"
            End If
            If ProgressBar1.Value = 28 Then
                Label1.Text = "LOADING... 28%"
            End If
            If ProgressBar1.Value = 30 Then
                Label1.Text = "LOADING... 30%"
            End If
            If ProgressBar1.Value = 32 Then
                Label1.Text = "LOADING... 32%"
            End If
            If ProgressBar1.Value = 34 Then
                Label1.Text = "LOADING... 34%"
            End If
            If ProgressBar1.Value = 36 Then
                Label1.Text = "LOADING... 36%"
            End If
            If ProgressBar1.Value = 38 Then
                Label1.Text = "LOADING... 38%"
            End If
            If ProgressBar1.Value = 40 Then
                Label1.Text = "LOADING... 40%"
            End If
            If ProgressBar1.Value = 42 Then
                Label1.Text = "LOADING... 42%"
            End If
            If ProgressBar1.Value = 44 Then
                Label1.Text = "LOADING... 44%"
            End If
            If ProgressBar1.Value = 46 Then
                Label1.Text = "LOADING... 46%"
            End If
            If ProgressBar1.Value = 48 Then
                Label1.Text = "LOADING... 48%"
            End If
            If ProgressBar1.Value = 50 Then
                Label1.Text = "LOADING... 50%"
            End If
            If ProgressBar1.Value = 52 Then
                Label1.Text = "LOADING... 52%"
            End If
            If ProgressBar1.Value = 54 Then
                Label1.Text = "LOADING... 54%"
            End If
            If ProgressBar1.Value = 56 Then
                Label1.Text = "LOADING... 56%"
            End If
            If ProgressBar1.Value = 58 Then
                Label1.Text = "LOADING... 58%"
            End If
            If ProgressBar1.Value = 60 Then
                Label1.Text = "LOADING... 60%"
            End If
            If ProgressBar1.Value = 62 Then
                Label1.Text = "LOADING... 62%"
            End If
            If ProgressBar1.Value = 64 Then
                Label1.Text = "LOADING... 64%"
            End If
            If ProgressBar1.Value = 66 Then
                Label1.Text = "LOADING... 66%"
            End If
            If ProgressBar1.Value = 68 Then
                Label1.Text = "LOADING... 68%"
            End If
            If ProgressBar1.Value = 70 Then
                Label1.Text = "LOADING... 70%"
            End If
            If ProgressBar1.Value = 72 Then
                Label1.Text = "LOADING... 72%"
            End If
            If ProgressBar1.Value = 74 Then
                Label1.Text = "LOADING... 74%"
            End If
            If ProgressBar1.Value = 76 Then
                Label1.Text = "LOADING... 76%"
            End If
            If ProgressBar1.Value = 78 Then
                Label1.Text = "LOADING... 78%"
            End If
            If ProgressBar1.Value = 80 Then
                Label1.Text = "LOADING... 80%"
            End If
            If ProgressBar1.Value = 82 Then
                Label1.Text = "LOADING... 82%"
            End If
            If ProgressBar1.Value = 84 Then
                Label1.Text = "LOADING... 84%"
            End If
            If ProgressBar1.Value = 86 Then
                Label1.Text = "LOADING... 86%"
            End If
            If ProgressBar1.Value = 88 Then
                Label1.Text = "LOADING... 88%"
            End If
            If ProgressBar1.Value = 90 Then
                Label1.Text = "LOADING... 90%"
            End If
            If ProgressBar1.Value = 92 Then
                Label1.Text = "LOADING... 92%"
            End If
            If ProgressBar1.Value = 94 Then
                Label1.Text = "LOADING... 94%"
            End If
            If ProgressBar1.Value = 96 Then
                Label1.Text = "LOADING... 96%"
            End If
            If ProgressBar1.Value = 98 Then
                Label1.Text = "LOADING... 98%"
            End If
            If ProgressBar1.Value = 100 Then
                Label1.Text = "Concluído!"
            End If
            If ProgressBar1.Value = 100 Then
                PictureBox2.Hide()
            End If
        End Sub
        Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click
            frm_login.Show()
            Me.Hide()
        End Sub
    End Class

    Algúem tem dica melhor sobre o ProgressBar? Quero que ele mostre o real carregamento do meu programa.
    sábado, 22 de fevereiro de 2014 18:22
  • Vou simplificar um pouco o seu código:

    Public Class frm_inicio
        Private Property ToolTip As String
        Private Sub frm_inicio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Timer1.Enabled = True
        End Sub
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            ProgressBar1.Increment(2)
            If ProgressBar1.Value = ProgressBar1.Maximum Then
                Timer1.Stop()
                frm_login.Show()
                Me.Hide()
            End If
    
            If ProgressBar1.Value > 1 And ProgressBar1.Value < 100 Then
                Label1.Text = String.Format("LOADING... {0}%", { ProgressBar1.Value })
            ElseIf ProgressBar1.Value = 100 Then
                Label1.Text = "Concluído!"
                PictureBox2.Hide()
            End If
    
        End Sub
        Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click
            frm_login.Show()
            Me.Hide()
        End Sub
    End Class

    Herbert Lausmann

    • Sugerido como Resposta Herbert Lausmann sábado, 22 de fevereiro de 2014 18:57
    sábado, 22 de fevereiro de 2014 18:56
  • Muito Bom!!! Valeu pela força! rsrs
    sábado, 22 de fevereiro de 2014 20:15