Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

D3POD

Progress bar no login

Mensagens Recomendadas

D3POD

Boas, criei um sistema de login que depois de ser feito correctamente os controles existentes no form de fundo ficam visíveis e o form do login desaparece. Como ainda são alguns controles o programa demora alguns segundo a carregar e ainda não tenho qualquer base de dados a funcionar, o que irá provocar uma lentidão maior pois serão 3 bases de dados a serem carregadas no load do form.

O que eu queria era criar um terceiro form no processo de arranque da aplicação, depois do login, que ia aguardar que tudo estivesse pronto e que ao mesmo tempo iria conter dados do registo do software.

Alguém me consegue dar alguma ajuda de como fazer isto?

O que tenho encontrada na maioria é para verificação da qualidade da password e coisas assim, que não tem muito a ver com o que pretendo.

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunobola

Podes uma um form de espera por examplo e chamá-lo quando quiseres, exemplo:

LoadingWindow loadingWindow = new LoadingWindow();

try
{
loadingwindow.Show(); //Main form Load.....
loadingwindow.Close();
}
catch (Exception ex)
{
MessageBox.Show("Exception EXPORT: " + ex.Message);
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
D3POD

Olá, o que eu pretendo é colocar a progressbar realmente num form, mas queria saber é como fazer com que o tempo da progressbar coincida com o tempo que a aplicação demorar a abrir o form seguinte, isto para evitar que o utilizador veja a aplicação a tremer de estar a carregar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

O que podes fazer é dividir as tarefas que tens no iniciar do teu form.

Por exemplo, imagina que fazes 7 operacoes no load.

Crias um form so com a progress bar e colocas o valor maximo a 7.

No form que tem as 7 operacoes, logo no inicio do load abres o form que tem a progress, mostrando logo com o valor a 0

Depois de cada operação, incrementas o valor, de modo a que depois da operação final, a progressbar fique com o valor maximo.

No final, escondes o form da progress e mostras o form principal.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
D3POD

É uma boa solução, mas como faço a leitura quando um dos processos terminada para que eu possa informar a progressbar que tem que aumentar valor?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Isso depende exactamente do que estas a fazer. Que operações são essas que fazes no inicio do form?

Dizes que é carregar dados de 3 bases de dados. So ai consegues dividir a barra de progresso em 3.

Depois depende exactamente dos dados que les de cada uma, para ver se da para dividir ainda mais

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
D3POD

Sim, eu tenho 3 bases de dados e cada uma delas tem varias tabelas.

Alem disso, tenho algumas definições que são carregadas no load do form principal e no login devido aos perfis.

O problema é que ao carregar todas essas informações a aplicação apresenta uns bloqueios e ainda só tenho uma base de dados a ser carregada.

A minha ideia era implementar uma progressbar onde o utilizador teria uma ideia de como está a ser carregada a informação.

Só não sei como vou recolher a informação por exemplo quando alguém faz login os dados são carregados e no form principal é apresentado um resumo que é carregado de uma base de dados e que pode provocar lentidão.

O que eu queria era por exemplo saber quando esse carregamento termina para informar a progressbar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Se o problema é o bloqueio da janela (não conseguir mexer) enquanto faz o loading, terás então de criar uma thread e colocar lá o trabalho demorado. Para isso vê o link que o bioshok mostrou

Se o problema é mostrar ao utilizar que está a fazer qualquer coisa e avançar uma barra de progresso, teras de fazer como disse no post #5 e #7

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.