Fizyka szkoła podstawowa
Fizyka: wzory, prawa i teoria. Rozwiązania zadań z omówieniem

Rozwązanie zadania:

Pasek postępu- ProgressBar

Cel: Wykorzystując kontrolkę Timer oraz ProgressBar zasymuluj postęp ładowania danych z możliwością zatrzymania, wznowienia i przerwania postępu.

ProgressBar Visual Studio C#

Krok 1. Układ komponentów

  • GroupBox- sztuk 1
  • Button- sztuk 4
  • Label- sztuk 1
  • ProgressBar- sztuk 1
  • Timer- sztuk 1

Proponowane ułożenie komponentów przedstawia poniższa ilustracja

kontrolka ProgressBar

Ustawiając komponent Timer wprowadź poniższe ustawienia właściwości Enabled na False i Interval na 100

kontrolka timer visual studio c#

Kontrolce ProgressBar ustaw właściwość Maximum na 100 (przyjmujemy, że jeden krok postępu odpowiada jednemu procentowi)

progressBar maximum 100

Krok 2. Zawartość zdarzenia Tick kontrolki Timer

To zdarzenie jest wywoływane cyklicznie z przerwami odpowiadającymi ustawionemu interwałowi i jest odpowiedzialne za przyrost długości paska postępu. Proponowany kod ma postać


private void Timer1_Tick(object sender, EventArgs e)
{
if (progressBar1.Value == 100){
timer1.Stop();
return;
}
progressBar1.Increment(1);
label1.Text = (progressBar1.Value*0.01f).ToString("P0");
}

W przedstawionym kodzie, występuje zastosowanie łańcucha formatującego wartość liczbową na procent (ToString("P0")). Na tę chwilę po skompilowaniu i uruchomieniu programu nic wizualnego nie będzie się dziać.

Krok 3. Uruchamiamy symulację postępu ładowania

Aby zaobserwować przyrost długości paska postępu w zdarzeniu Click przycisku button1 wystarczy uruchomić działanie zdarzenia Tick kontrolki Timer

private void Button1_Click(object sender, EventArgs e)
{
timer1.Start();
}

Skompiluj i uruchom program. Sprawdź efekt działania.

Krok 4. Przerywamy symulację postępu ładowania

W zdarzeniu Click przycisku button2 należy zatrzymać działanie zdarzenia Tick kontrolki Timer

private void Button2_Click(object sender, EventArgs e)
{
timer1.Stop();
}

Skompiluj i uruchom program. Sprawdź efekt działania.

Krok 4. Wznawiamy symulację postępu ładowania

W celach dydaktycznych wznowienie postępu ładowania jest inicjowane osobną kontrolką Button. Działanie zdarzenia Click przycisku button1 i button3 jest jednakowe i zawiera tę samą instrukcję

private void Button3_Click(object sender, EventArgs e)
{
timer1.Start();
}

Sprawdź efekt działania.

Krok 5. Resetowania paska postępu

Zdarzenie Click przycisku button4 realizuje wyczyszczenia właściwości związanych z przyrostem długości paska postępu oraz tekstu informacyjnego dla użytkownika (kontrolka label1). Proponowany kod ma postać


private void Button4_Click(object sender, EventArgs e)
{
timer1.Stop();
progressBar1.Value = 0;
label1.Text = (progressBar1.Value * 0.01f).ToString("P0");
}

Skompiluj i uruchom program

ProgressBar Visual Studio C#

Dobra książka

Zobacz przepis na wyśmienite gofry