Diskuze: timer

C# .NET .NET (C# a Visual Basic) timer American English version English version

Avatar
Head
Člen
Avatar
Head:

potreboval by som poradiť prečo mi takýto timer nefunguje..res­pektive strašen rýchlo to prejde na jednu stranu a ptom sa vrati na späť.... malo by to zabezpečovať plynulý pohyb labelu z prava dolava

private void timer1_Tick(object sender, EventArgs e)
      {
          while (label1.Right < 600)
          {

              label1.Left += 10;
          }

          while (label1.Left > 0)
          {

              label1.Left -= 10;
          }

      }
 
Odpovědět 25.2.2015 22:29
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Head
Jan Vargovský:

Nastav interval timeru.

 
Nahoru Odpovědět 25.2.2015 22:33
Avatar
Odpovídá na Head
sadlomaslox25:

oddelej ty while cykly, nahrad je ifama a stavovou promenou a zvys rychlost timeru. pokud cely proces chces opakovat vicekrat tak si zaved dalsi stavovou promenou a dalsi if.

 
Nahoru Odpovědět 25.2.2015 23:11
Avatar
Jan Vargovský
Redaktor
Avatar
Jan Vargovský:

Jo on tam ma whily, moc jsem to nestudoval :`

 
Nahoru Odpovědět 25.2.2015 23:23
Avatar
vodslon
Člen
Avatar
Odpovídá na Head
vodslon:

Ahoj pokud by to mělo být IF else, tak třeba takto?

bool pohybDoPrava = true;
        bool pohybDoLeva = false;

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (pohybDoPrava == true)
            {
                if (label1.Right < Form1.ActiveForm.Width)
                {
                    label1.Left += 10;
                    if(label1.Right >= Form1.ActiveForm.Width)
                    {
                        pohybDoPrava = false;
                        pohybDoLeva = true;
                    }
                }

            }

            else if (pohybDoLeva == true)
            {
                if (label1.Left > 0)
                {
                    label1.Left -= 10;
                    if (label1.Left <= 0)
                    {
                        pohybDoPrava = true;
                        pohybDoLeva = false;
                    }
                }
            }
        }
Editováno 26.2.2015 10:17
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 26.2.2015 10:15
Avatar
Odpovídá na vodslon
Michal Štěpánek:

Teoreticky bys tam to else if mohl nahradit prostým else, protože by se asi nikdy nemělo stát, že doprava i doleva budou současně true.

Nahoru Odpovědět 26.2.2015 10:38
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
vodslon
Člen
Avatar
Odpovídá na Michal Štěpánek
vodslon:

Souhlasím, šlo by to asi stáhnout více, ale chtěl jsem aby to bylo přehledné a dobře čitelné, protože já když něco hledám a je tam pak samá lambda,?,: atd ,tak je to peklo :)

 
Nahoru Odpovědět 26.2.2015 11:52
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 7 zpráv z 7.