Question

J'ai une étiquette sur un écran de démarrage qui s'affiche pendant 4 secondes. J'essaie de faire en sorte que l'étiquette affiche le processus de chargement sous forme de pourcentage. Évidemment, il s’agit simplement de montrer à l’utilisateur que le programme est en train de démarrer et non pas en train de "charger". n'importe quoi. Est-il possible que l'étiquette affiche le pourcentage (allant de 1% à 100%) en 4 secondes? Un peu perdu sur la façon de faire cela.

Était-ce utile?

La solution

Placez un contrôle Timer sur le formulaire, définissez sa propriété Interval sur 40 et sa propriété Enabled sur true. Créez une variable de niveau formulaire comme ceci:

private int _Progress = 0;

Dans l'événement Tick du minuteur, mettez ce code:

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

Les minuteries ne sont pas vraiment précises à la milliseconde. Cela ne prendra donc pas exactement 4 secondes, mais cela fera l'affaire.

Autres conseils

En supposant que vous parlez de WinForms (et non de WPF), le moyen le plus simple serait un contrôle de minuterie. Définissez le délai d'attente pour 40 ms (4 secondes = 4000 ms. 4000 ms / 100 mises à jour = 40 ms). Créez un entier de niveau classe pour suivre les progrès. Ensuite, votre code pour l'événement OnTick ressemblerait à quelque chose comme ça ...

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

Une minuterie avec un intervalle défini à 100 millisecondes serait l'approche la plus simple. Conservez le nombre de fois où l'événement de minuterie est appelé et mettez à jour la barre de progression de 2,5% à chaque tick.

Bien que cela fonctionne, je dirais qu'une barre de progression n'est pas idéale dans cette situation. Au lieu de cela, un graphique animé serait préférable car il indique que votre programme est en train de démarrer mais ne vous trompe pas comme le ferait une barre de progression.

Je pense que Microsoft commet régulièrement cette erreur d'utiliser des barres de progression trompeuses dans certaines applications.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top