Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Daniel Vítek:

Jak mám udělat v C# ve Windows Forms aby se mi čas aktualizoval ?
Když dám

label1.Text = Convert.ToString(DateTime.Now);

tak to se neaktualizuje... tak jak ?

 
Odpovědět 26.10.2012 13:02
Avatar
Nahoru Odpovědět 26.10.2012 13:05
Čím více času dostaneš, tím méně ho máš.
Avatar
davous267
Člen
Avatar
davous267:

Nazdar,

zkus to udělat pomocí nástroje Timer.
Nastavíš interval a pak upravuješ pomocí eventu Tick.

 
Nahoru Odpovědět 26.10.2012 13:06
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na davous267
Daniel Vítek:

To mi taky došlo že to asi bude nějak přes timer ale nevím jak ?

 
Nahoru Odpovědět 26.10.2012 13:06
Avatar
davous267
Člen
Avatar
davous267:

Zkus to takto:
Přidej timer, interval nastav na 1000 a rozklikni event Tick.
V této události vždycky zavolej metodu, ve které se ti čas vypisuje.

 
Nahoru Odpovědět 26.10.2012 13:09
Avatar
Odpovídá na Daniel Vítek
David Jančík [sczdavos]:
Timer timer = new Timer();
timer.Interval = 100; // 100 ms
timer.Tick += (dvakrát zmáčkni tab)
Nahoru Odpovědět 26.10.2012 13:09
Čím více času dostaneš, tím méně ho máš.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Jančík [sczdavos]
Daniel Vítek:
private void form1_Load(object sender, EventArgs e)
        {
Timer timer = new Timer();
 timer.Interval = 100; // 100 ms
 timer.Tick += new EventHandler(timer_Tick);
        }

        void timer_Tick(object sender, EventArgs e)
        {
            throw new NotImplementedException();
        }

Fajn jak vypsat kolik je ?

Editováno 26.10.2012 13:14
 
Nahoru Odpovědět 26.10.2012 13:14
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
matesax:

Chce čas ne - takže interval 1000...

Proč do load? Proč tak dlouze? :)

public MainForm()
{
    InitializeComponent();

    new Timer() { Interval = 1000 }.Tick += new EventHandler(MainForm_Tick);
}

void MainForm_Tick(object sender, EventArgs e)
{

}
Editováno 26.10.2012 13:16
 
Nahoru Odpovědět  +1 26.10.2012 13:14
Avatar
Odpovídá na Daniel Vítek
David Jančík [sczdavos]:

Do toho eventu Tick dáš to přiřazení tomu labelu.

Nahoru Odpovědět 26.10.2012 13:17
Čím více času dostaneš, tím méně ho máš.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na matesax
David Čápka:

Zlomek vteřiny proto, že se jistě start programu nestrefí do momentu, kdy začíná vteřina a nerefreshovalo by se to dobře.

Dlouhé to je proto, protože se v C# tak píše. Pokud chceš psát krátce, zvol jiný jazyk, třeba Ruby, ten se vyznačuje krátkou syntaxí. V C# jen znepřehledňuješ kód, který je nestandardní a špatně rozšiřitelný.

Nahoru Odpovědět  +1 26.10.2012 13:19
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na David Jančík [sczdavos]
Daniel Vítek:

tak

private void form1_Load(object sender, EventArgs e)
        {
Timer timer = new Timer();
 timer.Interval = 100; // 100 ms
 timer.Tick += new EventHandler(timer_Tick);
        }

        void timer_Tick(object sender, EventArgs e)
        {
           label1.text = throw new NotImplementedException();
        }

??? Já fakt nevím

 
Nahoru Odpovědět 26.10.2012 13:27
Avatar
matesax
Redaktor
Avatar
Odpovídá na Daniel Vítek
matesax:

Vždyť chceš hodiny ne?

private void form1_Load(object sender, EventArgs e)
        {
Timer timer = new Timer() { Interval = 100, Enabled = true };

 timer.Tick += new EventHandler(timer_Tick);
        }

        void timer_Tick(object sender, EventArgs e)
        {
           label1.text = DateTime.Now.ToString();
        }
Editováno 26.10.2012 13:33
 
Nahoru Odpovědět 26.10.2012 13:31
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
David Čápka:

Přečti si co ti psal davos a pak co jsi tam dal ty. Mělo by ti to dojít.

Nahoru Odpovědět 26.10.2012 13:31
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Když jsem posledně dělal hodiny v Javascriptu, tak jsem si vždy nejprve zjistil, kolik času zbývá do konce sekundy a čekal jsem jenom tuto krátkou dobu. Fungovalo to výborně. Možná by se něco podobného dalo udělat i v C#.

Nahoru Odpovědět 26.10.2012 13:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.