Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno_Ferreira

Exibição de status durante a execução do programa

Recommended Posts

Boa Tarde galera,

 

Estou criando um aplicativo (alguns já devem estar cansados de saber) que faz leitura de arquivos em uma determinada pasta e joga os dados diretamente em um banco de dados.

 

Já coloquei uma barra de progresso e agora quero fazer uma espécie de acompanhamento da execução. De início coloquei um label no Form em branco e coloquei pra atualizar o texto desse label a cada arquivo de for lido; Por exemplo "Lendo arquivo bruno.txt"

só que não fica atualizando durante a execução não, apenas quando termina a execução é que aparece algum texto no label. Como posso fazer para atualizar os textos normalmente?

 

Também gostaria de colocar um botão para cancelar, mas durante a execução do processo o Form fica completamente travado, como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tb já passei por isso. Não tenho o código aqui, mas em C# acredito que é label.Update(); para mudar o texto da label, e Application.DoEvents(); para não congelar.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Martins creio que eu tenha que usar o label.update("Texto então neh"),

 

Mas quanto ao Application.DoEvents() como eu uso? devo colocar na construtora do Formulário?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Bruno, tranquilo?

 

então, o label.Update() nao tem nehum parametro nao. Acredito que você esteja fazendo um loop entre os arquivos encontrados no determinado diretorio, certo? Se for isso, voce pode usar assim:

 

FileInfo[] fi = diretorio.GetFiles();
foreach (FileInfo f in fi)
{
  label.Text = NomeDoArquivo;
  label.Update();
  Application.DoEvents();
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bacana martins só tenho algumas dúvidas sobre esse Application.DoEvents() e que não achei na internet:

 

Na verdade essa função desbloqueia aplicação para permitir eventos durante a execução? e tenho mesmo que colocar ela dentro do looping?

Gostaria na verdade que só o botão de cancelar e talvez o de ajuda estivessem ativos durante a execução e que os botôes de executar e sair estivessem desabilitados, pra evitar confusões.

 

quanto ao label.Update() funcionou perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.