Mein Code, das funktioniert:WinForms Progress Bar Visible true false
private void textBox1_TextChanged(object sender, EventArgs e)
{
progressBar1.Visible = true;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
progressBar1.Visible = false;
}
Wenn ich etwas für den Computer hinzufügen zu tun, wie im folgenden Codebeispiel zu sehen ist, wird der Computer nicht den Fortschrittsbalken zeigen, bis es fertig ist die Berechnung machen. Was ich will, ist, dass ich zuerst den Fortschrittsbalken zeige, dann die Berechnung mache und dann bei irgendeinem anderen Ereignis den Fortschrittsbalken ausblenden möchte. Warum kann ich das nicht so machen?
private void textBox1_TextChanged(object sender, EventArgs e)
{
progressBar1.Visible = true;
FindPrimeNumber(50000);
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
progressBar1.Visible = false;
}
Der FindPrimeNumber Code angefordert:
public int FindPrimeNumber(int n)
{
int count = 0;
int a = 2;
while (count < n)
{
int b = 2;
int prime = 1;// to check if found a prime
while (b * b <= a)
{
if (a % b == 0)
{
prime = 0;
break;
}
b++;
}
if (prime > 0)
count++;
a++;
}
return (--a);
}
der FindPrimeNumber Code ist nur etwas auf dem Computer eine Aufgabe für eine Weile zu tun zu machen, kann ich so testen, ob mein Fortschrittsbalken zu sehen, zeigen, wird sich .
Das ist ziemlich einfach, Ihr UI-Thread kann die Fortschrittsleiste animieren * oder * es kann eine Primzahl finden. Es kann nicht beides. Verwenden Sie eine Aufgabe oder einen BackgroundWorker. –
Können Sie bitte den Code für 'FindPrimeNumber' (und anderen Code, der für das, was Sie versuchen, relevant ist) zeigen? – Enigmativity
Ich sehe Ihren Code, danke, aber wie schlagen Sie vor, Ihren Fortschrittsbalken zu aktualisieren? – Enigmativity