C# Timer button – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# Timer button – C / C++ – Fórum – Programujte.comC# Timer button – C / C++ – Fórum – Programujte.com

 

Amik98
~ Anonymní uživatel
8 příspěvků
31. 8. 2021   #1
-
0
-

Zdravím,

chtěl bych se zeptat, mám timer button, který mi po každém kliknutí pustí časovač od 30s a jde to až do nuly, kdy se to stopne hodí hlašku a progam se vypne.

Můj dotaz zní, dá se nějak udělat třeba pomocí if a else, aby když na tlačítko kliknu podruhé, tak se časovač vypne, takže se nespustí znovu od začátku?

zdroják mám takto:

       private void button11_Click(object sender, EventArgs e)
        {
            sekundy = 30;
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {

            časovač.Text = sekundy--.ToString();
            if (sekundy == -1)
            {
                timer1.Stop();
                MessageBox.Show("Vypnu se jsi pomalej/pomalá");
                Application.Exit();
            }

            else
            {
		???
            }

Děkuji za rady.

Nahlásit jako SPAM
IP: 2a00:1028:8396:16f2:c160:24fa:c33a:5140...–
31. 8. 2021   #2
-
+1
-
Zajímavé

Musíš si nějak zapamatovat stav po stisknutí tlačítka  -  pro dva stavy stačí bool: 

bool sudy = false;

private void button11_Click(object sender, EventArgs e)
{
   if(sudy)
   {
      //akce pro druhy klik, napr. stop casovace
      sudy = false;
   }
   else
   {
      //akce pro prvy klik, napr start casovace
      sudy = true;
   }
}

hu

Pozn.: dotazy C# patří do diskuze .NET

Nahlásit jako SPAM
IP: 195.178.67.–
Amik98
~ Anonymní uživatel
8 příspěvků
31. 8. 2021   #3
-
0
-

#2 hlucheucho
Pardon nějak mi nedošlo kam to dávám.

mohu se ještě jenom zeptat, co dělá dělá ten  if, přesnějí to co jsem zvíraznil?

Nějak mi nedochází to zapamatování stavu. Když na to tedy kliknu nasměruje mě to na ten bool automaticky a ten je false, tak by to mělo na první klik naopak vypnutý, ne?

 Možná to je to banální, ale nějak mi to asi nemyslí  .

if (sudy)
            {
                sudy = false;
                timer1.Stop();
            }
Nahlásit jako SPAM
IP: 2a00:1028:8396:16f2:c160:24fa:c33a:5140...–
Amik98
~ Anonymní uživatel
8 příspěvků
31. 8. 2021   #4
-
0
-

#3 Amik98
Nezvýraznilo* se to, ale myslel jsem toto: sudy = false;

Nahlásit jako SPAM
IP: 2a00:1028:8396:16f2:c160:24fa:c33a:5140...–
31. 8. 2021   #5
-
0
-

Poprvé klikneš, sudy je false (první kliknutí není sudé), provede větev else. Na jejím konci nastavi sudy na true.

Při druhém kliknutí je sudy true, provede větev if. Na jejím konci nastaví sudy na false a tak dokola.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
31. 8. 2021   #6
-
0
-

   

bool sudy = false;

private void button11_Click(object sender, EventArgs e)
{
   if(sudy)
   {
      //akce pro druhy klik, napr. stop casovace
   }
   else
   {
      //akce pro prvy klik, napr start casovace
   }
   sudy = !sudy;
}

To pamatování stavu by šlo udělat i prostou negací bool proměnné:

Nahlásit jako SPAM
IP: 195.178.67.–
31. 8. 2021   #7
-
0
-

...  a dají se měnit nápisy v tlačítku 

bool sudy = false;

private void button11_Click(object sender, EventArgs e)
{
   if(sudy)
   {
      //akce pro druhy klik, napr. stop casovace
      button1.text = "Start";
   }
   else
   {
      //akce pro prvy klik, napr start casovace
      button1.text = "Stop";
   }
   sudy = !sudy;
}
Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 88 hostů

Podobná vlákna

Timer — založil

Timer — založil Grunt z Jupiteru

Timer — založil Nero

Timer — založil petr143

Timer — založil qwe

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý