Progress Bar
Acesta este un control care afișează progresul unei activități lente sub forma unei bare orizontale. Proprietatea Value reprezintă progresul activității și parcurge în timp plaja de valori dintre Minimum și Maximum cu pasul Step. Minimum, maximum și step se vor configura la design time din panoul proprietăți. Efectuarea unui pas este dată de execuția metodei PerformStep() ca în acest exemplu:for(int i=p.Minimum; i=p.Maximum; i+=p.Step)
{
p.PerformStep();
}
unde p este un obiect progressBar.
Timer
Acesta este un cronometru care emite evenimente de tip Tick la intervale programabile, multiplu de 1 milisecundă.Aplicația
Utilizează un control Timer care declanșează un eveniment Tick la fiecare 2 secunde, timp de 20 de secunde. Numărul de secunde scurse se afișează într-un control Label, iar progresul se vizualizează într-o bară de progres. Cronometrul se oprește după 20 de secunde și poate fi repornit cu butonul Start. Acest Timer îl vom denumi winTimer.Al doilea control Timer afișează ora curentă. Îl vom denumi SystemTimer. Vom seta din proprietăți proprietatea Enabled pe true (implicit pleacă dezactivat).
Ambele Timere vor avea proprietatea Interval setată pe 1000 (un Tick la o secundă).
Utilizăm două etichete Label al căror text afișat (Text din Properties) îl ștergem. Va fi afișat prin program un text special.
Aducem un buton pe care scriem Start și pe care îl programăm cu metoda Click din aplicația următoare.
Aducem în formă un progressBar pe care îl configurăm astfel: Maximum = 20, Step = 2.
Mai creăm o variabilă membru în clasa Form1 numită time, de tip întreg, care va contoriza impulsurile de la 0 la 20, apoi va fi resetată:
private int time = 0;
namespace Timer
{
public partial class Form1 : Form
{
private int time = 0;
public Form1()
{
InitializeComponent();
}
private void progressBar1_Click(object sender, EventArgs e)
{
}
private void winTimer_Tick(object sender, EventArgs e)
{
time += 2; //incrementeaza contorul la 2 secunde
// afisam contorul secundelor (cronometrul) in eticheta
label2.Text = string.Format("{0}",time);
//incrementarea barei de progres
progressBar1.PerformStep();
if(time==20) //daca s-au scurs 20 secunde cronometrul se opreste
{
winTimer.Stop();
progressBar1.Enabled = false; //oprim
}
}
private void button1_Click(object sender, EventArgs e)
{
winTimer.Enabled = true;
if(time==20)
{
time = 0;
progressBar1.Value = 0;
}
}
private void SystemTimer_Tick(object sender, EventArgs e)
{
//proprietatea Now a clasei dateTime returneaza ora exacta
label5.Text = System.DateTime.Now.ToLongTimeString();
}
}
}
Niciun comentariu:
Trimiteți un comentariu