textbox

Mattepuffo's logo
Creare un countdown con C#

Creare un countdown con C#

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).