Pergunta

Eu tenho um rótulo em uma tela inicial que é exibida durante 4 segundos. Eu estou tentando fazer o rótulo apresentar o processo de carregamento como uma porcentagem. Obviamente, este é apenas para mostrar ao usuário que o programa está realmente começando e não realmente "carregamento" nada. Existe uma maneira que eu possa ter o rótulo apresentar a percentagem (que vai de 1% a 100%) em 4 segundos? Um pouco perdido sobre como fazer isso.

Foi útil?

Solução

Coloque um controlo de temporizador no formulário, e defina a propriedade Intervalo para 40 e sua propriedade Enabled para true. Criar uma variável de nível de formulário como este:

private int _Progress = 0;

No evento Tick do Timer, colocar esse código:

if (_Progress < 100)
{
    _Progress++;
    label1.Text = _Progress.ToString() + "%";
}
else
{
    timer1.Enabled = false;
}

Os temporizadores não são realmente precisas para o milissegundo, então isso não vai demorar exatamente 4 segundos, mas vai fazer o trabalho.

Outras dicas

Assumindo que você está falando WinForms (não WPF), a maneira mais simples seria um controle timer. Definir o tempo limite para 40 ms (4 secs = 4000 ms. 4000 ms / 100 actualiza = 40 ms). Criar um número inteiro em nível de classe para acompanhar o progresso. Em seguida, o código para o evento OnTick seria algo parecido com isto ...

if(progress < 100)
{
  progress++;
  progessLabel.Text = String.Format("Loading...  Progress: {0}%", progress);
}
else
{
  timer.Enabled = false;
}

Um temporizador com o ajuste do intervalo para dizer 100 milissegundos seria a abordagem mais simples. Manter uma contagem do número de vezes que o evento timer é chamado e atualizar a barra de progresso de 2,5 por cento cada carrapato.

Enquanto isso iria funcionar, eu diria que uma barra de progresso não é o ideal para esta situação. Ao invés de apenas um gráfico animado seria melhor, pois dá uma indicação de que seu programa está iniciando, mas não enganar como uma barra de progresso pode.

Eu acho que a Microsoft regularmente fazer este erro de usar enganosa barras de progresso em determinadas aplicações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top