Avatar billede mutalisk Nybegynder
17. april 2006 - 16:01 Der er 9 kommentarer og
1 løsning

Udskrivning af timer-tiden hver sec + beregning af "elasped time"

Hey, jeg har en timer og den kører i 30 sec. Nu vil jeg gerne vise en "count-down" i en textbox, så man kan se hvornår timeren udløber.. Hvordan gør jeg det?

Og:

Hvordan beregner jeg tiden der er gået, hvis jeg trykker på en knap inden de 30sec er gået, så vil jeg gerne sige 30 - elasped time..
Avatar billede innercitydk Nybegynder
17. april 2006 - 16:08 #1
Du kan tilføje en eventhandler i form constructoren således:

timer1.Tick += new System.EventHandler(this.timer1_Tick);

Et andet sted i klassen indsætter du så følgende metode:

private void timer1_Tick(object sender, System.EventArgs e)
{
      //Kode der skal afvikles ved hver tick
      //HUSK at stille intervallet på timeren ie: timer1.Interval = 100;   
}

Vh
Avatar billede innercitydk Nybegynder
17. april 2006 - 16:14 #2
Glemte lige..

For at beregne hvor lang tid der er gået kan du gøre følgende:
lave en variabel af typen int der er tilgængelig for metoderne i klassen.

private int elapsed=0;
private int tmp;
textBox1.Text="0";

private void timer1_Tick(object sender, System.EventArgs e)
{
      elapsed +=1;
      tmp=int.Parse(textBox1.Text);
      tmp +=1;
      textBox1.Text=tmp.ToString();

      //Kode der skal afvikles ved hver tick
      //HUSK at stille intervallet på timeren ie: timer1.Interval = 100;
      // Du skal ogsdå huske at nulstille elapsed ved hver afvikling 
}
Avatar billede innercitydk Nybegynder
17. april 2006 - 16:17 #3
Hvis du vil have den til at tælle ned i textboxen istedet ændrer du bare:

i klassen)  textBox1.Text="30";
i metoden)  tmp -=1;
Avatar billede mutalisk Nybegynder
17. april 2006 - 16:24 #4
Det jeg laver ud af det der, er det en "ny" timer som kører et andet interval?
Avatar billede innercitydk Nybegynder
17. april 2006 - 16:27 #5
Nej du behøver ikke lave en ny.. hvis du allerede har en timer der er sat til at køre i 30 sek. Du skal blot lave eventhandleren/metoden med det din timer hedder. Jeg har bare kaldt den Timer1. Alle de steder Timer1 optræder skifter du, samt textbox1.
Avatar billede innercitydk Nybegynder
17. april 2006 - 16:27 #6
Post eventuelt din kode så kan jeg fikse den
Avatar billede mutalisk Nybegynder
17. april 2006 - 16:31 #7
Vil ikke bare have at du "fikser" den, vil selv forstå hvad der sker..

Men ok, vi tager den lige engang til for de langsomme(mig):

Min nuværende timer kører 30sek, og dens interval ændres ved hver "level" man kommer til (Det er i et spil).
Det jeg så vil gøre er at vise en countdown for de 30 sek i en textbox.

Og det du skriver er, at jeg skal lave en "eventhandler" som kører med et interval på 1000ms og så have en funktion i den som ændre teksten i textboksen?
Avatar billede innercitydk Nybegynder
17. april 2006 - 16:37 #8
ja eventhandleren sørger for at koden i metoden bliver afviklet i det interval timeren er sat til. I metoden tæller du så den globale variabel elapsed op så du kan tilgå værdien hvis der trykkes på knappen. Desudden bruges tmp variablen til at beregne hvad der skal udskrives i textboxen. Hver gang koden afvikles udskrives der så hvad vi vil have i textboxen..
Avatar billede mutalisk Nybegynder
17. april 2006 - 16:48 #9
Perfekt, og det virker endda... Tak for hjælpen, send svar ;)
Avatar billede innercitydk Nybegynder
17. april 2006 - 17:03 #10
Nice :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester