Oggi vedremo come creare un piccolo cpuntdown con C# e Windows Form.
Create una nuova applcazione Windows Form.
Nella finestra dovete mettere come minimo questi elementi:
- una TextBox per impostare le ore
- una TextBox per impostare i minuti
- una TextBox per impostare i secondi
- un Button per lo start
- un Button per la pausa
- un Button per lo stop
- una Label per lo scorrere delle ore
- una Label per lo scorrere dei minuti
- una Label per lo scorrere dei secondi
- un oggetto Timer che trovate nel gurppo Componenti; quando lo aggiungete verrà visualizzato nella barra in fondo alla finestra del designer
Inoltre, per fare le cose più carine, i tasti di stop e pausa all'inizio sono disabilitati.
Di volta in volta abiliteremo/disabiliteremo solo i pulsanti che ci servono.
A questo punto nel codice del form pirma di tutto aggiungiamo 4 variabili private:
-
private int seconds = 0;
private int minutes = 0;
private int hours = 0;
private bool paused;
Penso che non abbiano bisogno di molte spiegazioni.
Poi abbiamo bisogni di un metodo per ogni bottone più uno per controllare l'oggetto Timer.
Cominciamo col metodo del pulsante start:
private void btnStart_Click(object sender, EventArgs e)
{
if (paused != true)
{
if (txtHr.Text != String.Empty || txtMn.Text != String.Empty || txtSn.Text != String.Empty)
{
try
{
if (txtHr.Text != String.Empty)
{
hours = Convert.ToInt32(txtHr.Text);
}
if (txtMn.Text != String.Empty)
{
minutes = Convert.ToInt32(txtMn.Text);
}
if (txtSn.Text != String.Empty)
{
seconds = Convert.ToInt32(txtSn.Text);
}
btnStart.Enabled = false;
btnPause.Enabled = true;
btnStop.Enabled = true;
cdTimer.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
MessageBox.Show("Inserire almeno un valore");
}
}
else
{
cdTimer.Enabled = true;
paused = false;
btnStart.Enabled = false;
btnPause.Enabled = true;
btnStop.Enabled = true;
}
}
Prima controlliamo se lo stato del Timer è in pausa.
Poi controlliamo che almeno una delle TextBox sia valorizzata.
Se tutto va bene valoriaziamo le variabili int private con i valori delle TextBox e abilitiamo il Timer (cdTimer).