Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Silkroad Online Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

11.06.2008, 14:11

countdown für c#

hi vlt kann mir jemand helfen
ich bräuchte mal nen code um einen countdown in eine textbox auszugebn hab schon soviele tutorials dafür versucht aber keins hat geklapt ....

ich stell mir das in etwa so wie in dem programm vor aber halt nur den countdown ;)

[TOOL]Powerlevel Helper v2.0

thx für hilfe

gruß tobi

.
Nuke_Baba_TR(From):hi your pet stole me goldss

DAU

Verteidiger einer zerschmetterten Welt

Beiträge: 2 603

Wohnort: Karlsruhe

Beruf: Software Developer

  • Nachricht senden

2

11.06.2008, 14:30

[c]
int hours = 1;
int minutes = 0;
int seconds = 0;

TimeSpan m_TimeSpan = new TimeSpan();

public Form1()
{
....
m_TimeSpan = new TimeSpan(hours,minutes,seconds);
Timer timer = new Timer();
timer.Interval = 1000;
timer.Tick += new Evanthandler ..... << bitte richtig ergänzen ^.^
timer.Enable = true;
}

void timer_Tick(object sender,EventArgs e)
{
m_TimeSpan.AddSeconds(-1);
Textbox1.Text = String.Format("{0}h {1}min {2}s",m_TimeSpan.Hours,m_TimeSpan.Minutes,m_TimeSpan.Seconds);
}
[/c]

net 100% optimal aber somit weißt du wie es geht :)
vergisst man schnell mal, dass die DAUs eigentlich in der überzahl sind.

ich weiß sehr genau, dass AIDS viele (Geschechts-)Krankheiten, darunter HIV, vorbeugt.


3

11.06.2008, 14:48

heeey cool danke !!!!
hab jezt nur noch 1 fehlermeldung
Fehler 1 "System.TimeSpan" enthält keine Definition für "AddSeconds".
Nuke_Baba_TR(From):hi your pet stole me goldss

DAU

Verteidiger einer zerschmetterten Welt

Beiträge: 2 603

Wohnort: Karlsruhe

Beruf: Software Developer

  • Nachricht senden

4

11.06.2008, 14:54

heeey cool danke !!!!
hab jezt nur noch 1 fehlermeldung
Fehler 1 "System.TimeSpan" enthält keine Definition für "AddSeconds".


Ah Sorry, AddSeconds gibts bei DateTime. Nehm die Methode: .Subtract(new TimeSpan(0,0,1));
vergisst man schnell mal, dass die DAUs eigentlich in der überzahl sind.

ich weiß sehr genau, dass AIDS viele (Geschechts-)Krankheiten, darunter HIV, vorbeugt.


5

11.06.2008, 15:00

okey jezt startet das programm aber es kommt dann eine fehlermeldung :
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Nuke_Baba_TR(From):hi your pet stole me goldss

DAU

Verteidiger einer zerschmetterten Welt

Beiträge: 2 603

Wohnort: Karlsruhe

Beruf: Software Developer

  • Nachricht senden

6

11.06.2008, 15:03

von welchem objekt? haste im Konstruktor auch am Anfang noch den Aufruf der Designermethode drin? Also "InitilizeComponents" oder so. Wenn net ist ja noch deine Textbox null. Alle anderen Objekte sind eigentlicher referenziert.
vergisst man schnell mal, dass die DAUs eigentlich in der überzahl sind.

ich weiß sehr genau, dass AIDS viele (Geschechts-)Krankheiten, darunter HIV, vorbeugt.


7

11.06.2008, 15:40

ja genau das war der fehler ^^
nun schreibt er "1h 0min 0s" in dei textbox zählt sie aber nicht runter ......


aber danke schonmal für die hilfe :)
Nuke_Baba_TR(From):hi your pet stole me goldss

8

11.06.2008, 15:53

Also ich habe es so gelöst :

Benötigt :
-Timer ( timer1)
-Textbox (textBox1)
-Button ( button1)

[c]private void timer1_Tick(object sender, EventArgs e)
{
DateTime now = new DateTime();
DateTime after = new DateTime();
TimeSpan timespan = new TimeSpan();

now = DateTime.Now;
after = Convert.ToDateTime("19:00");
timespan = after - now;


textBox1.Text = timespan.Hours + ":" + timespan.Minutes + ":" + timespan.Seconds;

}[/c]

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »HueHang« (11.06.2008, 18:08)


DAU

Verteidiger einer zerschmetterten Welt

Beiträge: 2 603

Wohnort: Karlsruhe

Beruf: Software Developer

  • Nachricht senden

9

11.06.2008, 16:15

textbox zählt sie aber nicht runter ......


Hast du auch das Timer Event eingetragen? also dieses "timer.Tick += ..."? (tipp: bis zum += eintippen, dann leertaste und dann einfach 2mal TAB drücken, dann macht er es alleine ;))

@HueHang: Dein Code weißt logische und Kompiler Fehler auf ;)

Achja,, hier mal der Code der PlayerKlasse aus meinem PartyLevelTool

[c]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace PartyLevelerTool
{
public partial class Player : UserControl
{
private TimeSpan m_Time = new TimeSpan(0, 0, 0);
private Timer m_Timer = new Timer();

public Player()
{
InitializeComponent();
m_Timer.Enabled = false;
m_Timer.Interval = 1000;
m_Timer.Tick += new EventHandler(m_Timer_Tick);
ShowTime();
}

void ShowTime()
{
if (m_Time.TotalSeconds <= 0)
{
m_Timer.Enabled = false;
textBox2.BackColor = Color.Red;
}
else
textBox2.BackColor = Color.White;
textBox2.Text = String.Format("{0}h:{1:00}m:{2:00}s", m_Time.Hours, m_Time.Minutes, m_Time.Seconds);
}

public void Pause()
{
m_Timer.Enabled = false;
button1.Text = "START";
}

void m_Timer_Tick(object sender, EventArgs e)
{
m_Time = m_Time.Subtract(new TimeSpan(0, 0, 1));
if (m_Time.TotalSeconds == 0)
{
System.Media.SoundPlayer sound = new System.Media.SoundPlayer();
sound.SoundLocation = "alarm.wav";
sound.Play();
}
ShowTime();
}

private void button1_Click(object sender, EventArgs e)
{
if (m_Time.TotalSeconds <= 0 && !m_Timer.Enabled)
{
MessageBox.Show("KEINE ZEIT FESTGELEGT");
return;
}
m_Timer.Enabled = !m_Timer.Enabled;
if (m_Timer.Enabled)
button1.Text = "PAUSE";
else
button1.Text = "START";
}

private void button2_Click(object sender, EventArgs e)
{
m_Time = m_Time.Add(new TimeSpan(0, 15, 0));
ShowTime();
}

private void button3_Click(object sender, EventArgs e)
{
m_Time = m_Time.Add(new TimeSpan(0, 30, 0));
ShowTime();
}

private void button4_Click(object sender, EventArgs e)
{
m_Time = m_Time.Add(new TimeSpan(1, 0, 0));
ShowTime();
}

private void button5_Click(object sender, EventArgs e)
{
m_Timer.Enabled = false;
m_Time = new TimeSpan(0, 0, 0);
ShowTime();
}
}
}[/c]
vergisst man schnell mal, dass die DAUs eigentlich in der überzahl sind.

ich weiß sehr genau, dass AIDS viele (Geschechts-)Krankheiten, darunter HIV, vorbeugt.


10

11.06.2008, 17:08

:-(
Mein voller Code..Nun DAU,es funktioniert bei mir :P
[c]
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;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Timer timer1 = new Timer();
private void button1_Click(object sender, EventArgs e)
{
timer1.Interval = 1000;
timer1.Enabled = true;
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
DateTime now = new DateTime();
DateTime after = new DateTime();
TimeSpan timespan = new TimeSpan();

now = DateTime.Now;
after = Convert.ToDateTime("19:00:00");
timespan = after - now;

textBox1.Text = timespan.Hours + ":" + timespan.Minutes + ":" + timespan.Seconds;

}

}
}

[/c]

DAU

Verteidiger einer zerschmetterten Welt

Beiträge: 2 603

Wohnort: Karlsruhe

Beruf: Software Developer

  • Nachricht senden

11

11.06.2008, 17:17

[c]textBox1.Text = timespan.Hours + ":" + timespan.Minutes + ":" + timespan.Seconds;[/c]
Diese Zeile wirft zu 100% nen Kompilerfehler aus, wetten wir. Du versuchst nämlich int wert als String zu verwenden, wo er eigentlich sofort meckern müsste ;).

Entweder du nimmst die String.Format Methode
[c]textBox1.Text = String.Format("{0}:{1}:{2}", timespan.Hours, timespan.Minutes, timespan.Seconds);[/c]
oder du verwendest überall .ToString()
[c]textBox1.Text = timespan.Hours.ToString() + ":" + timespan.Minutes.ToString() + ":" + timespan.Seconds.ToString();[/c]


Am Ende muss ich mich noch sehr über diese Zeile wundern, da sie recht skuriel ist:
[c]after = Convert.ToDateTime("19:00:00");[/c]
vergisst man schnell mal, dass die DAUs eigentlich in der überzahl sind.

ich weiß sehr genau, dass AIDS viele (Geschechts-)Krankheiten, darunter HIV, vorbeugt.


12

11.06.2008, 18:06

[c]textBox1.Text = timespan.Hours + ":" + timespan.Minutes + ":" + timespan.Seconds;[/c]
Jop,aber durch die[c] + ":" +[/c] gibt es keine Kompilierungsfehler :p
Jedenfalls bei mir ( VS 2008 C# )...
[c]after = Convert.ToDateTime("19:00:00");[/c]

Dieser Wert kann natürlich beliebig geändert werden und sonst geht es bei mir nicht :(

DAU

Verteidiger einer zerschmetterten Welt

Beiträge: 2 603

Wohnort: Karlsruhe

Beruf: Software Developer

  • Nachricht senden

13

11.06.2008, 18:11


Jop,aber durch die[c] + ":" +[/c] gibt es keine Kompilierungsfehler :p
Jedenfalls bei mir ( VS 2008 C# )...
Ja weil du vor dem [c]+ ":" + [/c] eine Integer Zahl hast, obwohl du hier Strings miteinander verbinden willst. Versuche einen meiner oben genannten Lösungen. Beide gehen, wobei ich die String.Format Method etwas smarter finde.

Zitat


[c]after = Convert.ToDateTime("19:00:00");[/c]

Dieser Wert kann natürlich beliebig geändert werden und sonst geht es bei mir nicht :(

Es ist zu statisch und außerdem zu Fehleranfällig, weil du versuchst Strings zu konvertieren. Guck dir meinen Code oben an, da findest du Ideen, wie man es dynamischer und sicherer halten kann :)
vergisst man schnell mal, dass die DAUs eigentlich in der überzahl sind.

ich weiß sehr genau, dass AIDS viele (Geschechts-)Krankheiten, darunter HIV, vorbeugt.


14

11.06.2008, 23:30

[c]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace timmer_dau
{
public partial class Form1 : Form
{
int hours = 1;
int minutes = 0;
int seconds = 0;


private TimeSpan m_TimeSpaner = new TimeSpan(0, 0, 0);
private Timer m_TimeSpan = new Timer();

public Form1()
{

InitializeComponent();
m_TimeSpan.Enabled = false;
m_TimeSpan.Interval = 1000;
m_TimeSpan.Tick += new EventHandler(timer1_Tick);
ShowTime();

}




void ShowTime()
{
if (m_TimeSpaner.TotalSeconds <= 0)
{
m_TimeSpan.Enabled = false;
textBox1.BackColor = Color.Red;
}
else
textBox1.BackColor = Color.White;
textBox1.Text = String.Format("{0}h:{1:00}m:{2:00}s", m_TimeSpaner.Hours, m_TimeSpaner.Minutes, m_TimeSpaner.Seconds);
}

private void button1_Click(object sender, EventArgs e)
{
if (m_TimeSpaner.TotalSeconds <= 0 && !m_TimeSpan.Enabled)
{
MessageBox.Show("KEINE ZEIT FESTGELEGT");
return;
}
m_TimeSpan.Enabled = !m_TimeSpan.Enabled;
if (m_TimeSpan.Enabled)
button1.Text = "PAUSE";
else
button1.Text = "START";
}

private void button2_Click_1(object sender, EventArgs e)
{

m_TimeSpaner = m_TimeSpaner.Add(new TimeSpan(1, 15, 10));
ShowTime();

}

private void timer1_Tick(object sender, EventArgs e)
{
m_TimeSpaner.Subtract(new TimeSpan(0, 0, 1));
if (m_TimeSpaner.TotalSeconds == 0)
{
MessageBox.Show("NEIN");
}

ShowTime();

}



}
}
[/c]


so das ist jezt mein code
das problem was ich noch habe ist halt das er die zeit inner text box nixht runter zählt .... vlt könnt ihr mir nochmals helf ;)
Nuke_Baba_TR(From):hi your pet stole me goldss

DAU

Verteidiger einer zerschmetterten Welt

Beiträge: 2 603

Wohnort: Karlsruhe

Beruf: Software Developer

  • Nachricht senden

15

12.06.2008, 00:25

Hast du nen button1 der den button1_Clicke ausführt?
vergisst man schnell mal, dass die DAUs eigentlich in der überzahl sind.

ich weiß sehr genau, dass AIDS viele (Geschechts-)Krankheiten, darunter HIV, vorbeugt.


16

12.06.2008, 12:57

ja ist vorhanden ....
Nuke_Baba_TR(From):hi your pet stole me goldss

DAU

Verteidiger einer zerschmetterten Welt

Beiträge: 2 603

Wohnort: Karlsruhe

Beruf: Software Developer

  • Nachricht senden

17

13.06.2008, 10:44

Die Zeile ist falsch: [c]m_TimeSpaner.Subtract(new TimeSpan(0, 0, 1));[/c]
Muss heißen: [c]m_TimeSpaner = m_TimeSpaner.Subtract(new TimeSpan(0, 0, 1));[/c]
vergisst man schnell mal, dass die DAUs eigentlich in der überzahl sind.

ich weiß sehr genau, dass AIDS viele (Geschechts-)Krankheiten, darunter HIV, vorbeugt.


18

13.06.2008, 11:17

YEHAAAA
Es funkioniert !!!!!!!
nach 1 woche rumgrübelei
tausend dank dau das du mir so geholfen hast -blumen-
Nuke_Baba_TR(From):hi your pet stole me goldss

DAU

Verteidiger einer zerschmetterten Welt

Beiträge: 2 603

Wohnort: Karlsruhe

Beruf: Software Developer

  • Nachricht senden

19

13.06.2008, 11:29

Kein Problem. C# ist mein Fachgebiet ^.^
vergisst man schnell mal, dass die DAUs eigentlich in der überzahl sind.

ich weiß sehr genau, dass AIDS viele (Geschechts-)Krankheiten, darunter HIV, vorbeugt.


20

13.06.2008, 20:14

[c]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Timer timer1 = new Timer();
public int count;
private void button1_Click(object sender, EventArgs e)
{
count = Convert.ToInt16(textBox1.Text);
timer1.Interval = 1000;
timer1.Enabled = true;
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
count = count - 1;
label1.Text = count.ToString();
if (count == 0)
{
MessageBox.Show("blub");
}
}
}
}[/c]

DAU,wie findest du das hier?Abgesehen,dass es nur Sekunden sind :-(