PDA

View Full Version : problema cronometro c#


sirolf_otrebla
15-11-2010, 14:49
innanzitutto salve a tutti! :)

qualche giorno fa ho iniziato a programmare in c# e ieri decisi di prerarare un cronometro visuale. secondo il compilatore non ci sono errori eppure quando apro l
il debug e premo il pulsante play il cronometro non parte e il form si blocca. potete aiutarmi?

ecco il codice:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

int x = 10;
int min = 0;
int ss = 0;
int hh = 0;
string at = ":";

private void buttonpause_Click(object sender, EventArgs e)
{

x = 11;


}

private void buttonlay_Click(object sender, EventArgs e)
{

x = 10;
while (x == 10)
{
START23:

caselladitesto.Clear();
ss++;
caselladitesto.Text = caselladitesto.Text + hh;
caselladitesto.Text = caselladitesto.Text + at;
caselladitesto.Text = caselladitesto.Text + min;
caselladitesto.Text = caselladitesto.Text + at;
caselladitesto.Text = caselladitesto.Text + ss;
Thread.Sleep(1000);
if (ss == 60)
{
ss = 0;
min++;

goto START23;
}
if (ss < 60)
{

goto START23;
}
if (min == 60)
{
min = 0;
hh++;
goto START23;
}
}
}

private void buttonclear_Click(object sender, EventArgs e)
{
caselladitesto.Clear();
}

private void textBox1_TextChanged(object sender, EventArgs e)
{

}


}
}

il bello è che il codice in versione x console funziona a meraviglia!!

uso visual c# 2010 express. grazie in anticipo! :)

tacchinox
15-11-2010, 18:25
ma esiste ancora il goto ?
dovrebbero averlo bandito da un pezzo...

tomminno
15-11-2010, 19:32
Mi rifiuto di cercare di decifrare cosa fa esattamente un codice contenente goto, ma sicuramente la tua interfaccia si pianta perchè esegui tutto all'interno dell'evento click pertanto rimane tutto fermo in attesa che il tuo codice completi le operazioni.

pare93
15-11-2010, 20:11
Naaa che caos :)
Se vuoi un algoritmo pulito ed efficace di consiglio di usare un timer oppure sfruttere la DateTime.Now. Comunque ci sono veramente un sacco di metodi ...

sirolf_otrebla
16-11-2010, 16:02
come mai goto non è funzionale?

ho pensato anche io il problema fosse che il ciclo è inserito sotto buttonlay.click, ma non saprei proprio dove metterlo se non li... ora provo a metterlo da qualche altra parte

MarcoGG
16-11-2010, 22:28
come mai goto non è funzionale?

ho pensato anche io il problema fosse che il ciclo è inserito sotto buttonlay.click, ma non saprei proprio dove metterlo se non li... ora provo a metterlo da qualche altra parte

Ma LOL ! :D
GoTo con C# ? Potresti beccarti un BAN per questo. :p
Comunque, se non altro, è il cronometro più originale che abbia mai visto.

Scherzi a parte :
http://www.hwupgrade.it/forum/showthread.php?t=2066170
;)

sirolf_otrebla
17-11-2010, 17:13
ook ho risolto. ho rifatto daccapo direttamente con un timer, e anziche far partire il cronometro con una variabile ho utilizzato timer1.Enabled = true;
grazie a tutti per l'aiuto XD