Domanda

Ho un'etichetta su una schermata iniziale che viene visualizzata per 4 secondi. Sto cercando di fare in modo che l'etichetta mostri il processo di caricamento in percentuale. Ovviamente, ciò serve solo a mostrare all'utente che il programma si sta effettivamente avviando e che in realtà non sta "caricando" nulla. C'è un modo in cui posso visualizzare l'etichetta della percentuale (passando dall'1% al 100%) entro 4 secondi? Un po 'perso su come farlo.

È stato utile?

Soluzione

Inserire un controllo Timer nel modulo e impostare la proprietà Interval su 40 e la proprietà Enabled su true. Crea una variabile a livello di modulo come questa:

private int _Progress = 0;

Nell'evento Tick del timer, inserisci questo codice:

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

I timer non sono molto precisi al millisecondo, quindi questo non richiederà esattamente 4 secondi, ma farà il lavoro.

Altri suggerimenti

Supponendo che tu stia parlando WinForms (non WPF), il modo più semplice sarebbe un controllo timer. Impostare il timeout per 40 ms (4 secondi = 4000 ms. 4000 ms / 100 aggiornamenti = 40 ms). Crea un numero intero a livello di classe per tenere traccia dell'avanzamento. Quindi il tuo codice per l'evento OnTick sarebbe simile a questo ...

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

Un timer con l'intervallo impostato per dire 100 millisecondi sarebbe l'approccio più semplice. Tenere conto del numero di volte in cui viene chiamato l'evento timer e aggiornare la barra di avanzamento del 2,5 percento per ogni segno di spunta.

Anche se funzionerebbe, direi che una barra di avanzamento non è l'ideale per questa situazione. Invece, solo una grafica animata sarebbe migliore in quanto fornisce un'indicazione che il programma si sta avviando, ma non fuorvia come può fare una barra di avanzamento.

Penso che Microsoft commetta regolarmente questo errore nell'uso di barre di avanzamento fuorvianti in alcune applicazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top