Frage

Ich habe ein Etikett auf einem Splash-Screen, der für 4 Sekunden angezeigt. Ich versuche, das Etikett zu machen als Prozentsatz den Ladevorgang anzuzeigen. Offensichtlich ist dies nur dem Benutzer zu zeigen, dass das Programm tatsächlich gestartet wird und nicht wirklich „Laden“ nichts. Gibt es eine Möglichkeit, dass ich das Etikett zeigt den Prozentsatz aufweisen kann (von 1% bis 100% gehen) innerhalb von 4 Sekunden? Ein wenig verloren, wie dies zu tun.

War es hilfreich?

Lösung

Setzen Sie ein Timer-Steuerelement auf dem Formular, und legen Sie seine Interval-Eigenschaft auf 40 und seine Enabled-Eigenschaft auf true. Erstellen Sie ein Formular-Ebene-Variable wie folgt:

private int _Progress = 0;

In der Tick-Ereignis des Timer, setzen Sie diesen Code ein:

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

Timer sind nicht wirklich genau auf die Millisekunde, so wird dies nicht nimmt genau 4 Sekunden, aber es wird die Arbeit tun.

Andere Tipps

Sie sprechen WinForms (nicht WPF) Unter der Annahme, wäre der einfachste Weg, eine Timer-Steuerung sein. Stellen Sie das Timeout für 40 ms (4 sec = 4000 ms. 4000 ms / 100 updates = 40 ms). Erstellen Sie eine Klasse-Ebene ganze Zahl für den Fortschritt zu verfolgen. Dann wird Ihr Code für das onTick Ereignis wie folgt aussehen würde ...

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

Ein Timer mit dem Intervall von 100 Millisekunden zu sagen, wäre der einfachste Ansatz. Halten Sie eine Zählung der Anzahl der für den Timer-Ereignis aufgerufen wird, und aktualisieren Sie den Fortschrittsbalken um 2,5 Prozent pro Tick.

Während dies funktionieren würde, würde ich sagen, dass ein Fortschrittsbalken für diese Situation ist nicht ideal. Statt nur eine animierte Grafik wäre besser, da es einen Hinweis gibt, dass Ihr Programm wird gestartet, aber nicht falschen Schlüssen wie ein Fortschrittsbalken kann.

Ich denke, Microsoft regelmäßig diese Fehler machen, indem irreführend Fortschrittsbalken bei bestimmten Anwendungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top