jay_1648

Hi all.

I'm new to programming and C# is my first language.

I'm currently stuck at a problem of displaying a timer in the windows form that i've designed.
I've created a label on the form on which i want to display a timer which keeps counting the number of seconds and minutes till the time the form is not closed.

Plz help.
Thanks in advance..


Re: Windows Forms General Display Timer

FlorianReischl

Hi

Put a Label and a Timer onto your Form.

Use Form event FormLoad and Timer event Tick.

Code Block

private void Form1_Load(object sender, EventArgs e)

{

timer1.Enabled = true;

timer1.Interval = 100;

}

private void timer1_Tick(object sender, EventArgs e)

{

label1.Text = DateTime.Now.ToString("HH:mm:ss");

}

Maybe you should start with a beginner C# Book. There are many free books to find in web.

Regards

Flo





Re: Windows Forms General Display Timer

Fábio

Create a timer and set its Interval to 1000 .This code will count how many seconds have elapsed since

the application started.

Code Block

public partial class Form1 : Form

{

private TimeSpan timecounter = new TimeSpan();

private void Form1_Load(object sender, EventArgs e)

{

timer1.Enabled = true;

timer1.Interval = 1000;

}

private void timer1_Tick(object sender, EventArgs e)

{

timecounter = timecounter.Add(TimeSpan.FromSeconds(1));

label2.Text = timecounter.TotalSeconds.ToString() + " s";

}

}






Re: Windows Forms General Display Timer

jay_1648

I think this was the solution i was looking for.
Thanks Fabio for your help. I'm not at home right now to try this code but i'm sure this will work. As i was not familiar with the timespan class that's why it was a problem for me.
I did declare a timer class object but that wasn't giving any member variable which displays the current time in the timer. I did notice the tick event but didn't know how to use it. But I should be able to use it now. Thanks again for your help.

Just a silly question again what's this tick event though and when exactly it's called. Is it called on every second or in some milliseconds or when exactly it is called..




Re: Windows Forms General Display Timer

Fábio

The Timer component is just for counting time. The tick event is called every time a specified interval has elapsed.

Example: You set the Interval for your Timer to 100. This means that every 100ms (One 10th of a second) the

Timer.Tick event will get called. This way you can make a counter or anything you like that needs to be done

every 100ms.

In the case I supplied, you set the interval to 1000 (1000ms or One second). That means that every second

the Timer1_Tick event handler will be called and in the event handler I add One Second to the TimeSpan object.

So timecounter will be one second longer at every 1000ms.

TimeSpan is pretty much a class that represents a period of time. As TimeDate represents Date/Time like

calendar.






Re: Windows Forms General Display Timer

jay_1648

Hi,

The code you told me earlier did work and it's simple as well. But it goes on counting the seconds only. I would need to have the minutes also displayed along with the seconds. In every sixty second one minute should increase and second will start again.

I would really appreciate the help..

Thanks again .





Re: Windows Forms General Display Timer

Fábio

I did put only the seconds on purpose, I think it is important to explore things yourself. Makes your mind get sharp. I think you should try to figure it out yourself, try it, explore. If you still can't get it to work, post here again and I will post the code for you.

Regards,

Fabio






Re: Windows Forms General Display Timer

jay_1648

Well I know i certainly can do it , just need to spend some time on it. I'm trying it now but I might end up with a complicated code. But whatever code i put i'll post here so that you can check if that's good or not. Thanks.





Re: Windows Forms General Display Timer

jay_1648

Apart from this timer Problem I'm also stuck at another problem also , which is to use a resource file.

I've created an additional resource file for my project coz i want to store some string values on it.

I have right clicked on solution explorer and clicked "add new item" and added a new resource file named as "Resource1.resx"

I can go to this file by manually double clicking it and i can manually add some string objects and values on it. But I want do it on runtime. Like I want to access it from my code. To retreive the string object and values in runtime i simply use

"Resource1.stringObject"

But how do i add string objects to it in runtime.





Re: Windows Forms General Display Timer

jay_1648

Here's my code to display minutes along with the seconds:

private void Form1_Load(object sender, EventArgs e)

{

timer2.Enabled = true;

timer2.Interval = 1000;

}

int sec = 0;

int min = 0;

private void timer2_Tick(object sender, EventArgs e)

{

sec++;

if (sec == 60)

{

sec = 0;

min++;

}

label1.Text = Convert.ToString(min) + ":" + Convert.ToString(sec);

}





Re: Windows Forms General Display Timer

Fábio

I see you used a different approach here, not using timespan, which is good too. in the label part you should

do differently:

Code Block

label1.Text = min.ToString() + ":" + sec.ToString();

About the strings, do you actually want to create new strings or just modify them during run-time






Re: Windows Forms General Display Timer

jay_1648

A better one to display time on the screen will be :

Code Block

private void Form1_Load(object sender, EventArgs e)

{

timer2.Enabled = true;

timer2.Interval = 1000;

}

private void timer2_Tick(object sender, EventArgs e)

{

sec++;

second = Convert.ToString(sec);

minute = Convert.ToString(min);

if (sec == 60)

{

sec = 0;

min++;

}

if (sec < 9)

{

second = "0"+Convert.ToString(sec);

}

if (min < 9)

{

minute = "0"+Convert.ToString(min);

}

label1.Text = minute + ":" + second;

}





Re: Windows Forms General Display Timer

jay_1648

jay_1648 wrote:

Apart from this timer Problem I'm also stuck at another problem also , which is to use a resource file.

I've created an additional resource file for my project coz i want to store some string values on it.

I have right clicked on solution explorer and clicked "add new item" and added a new resource file named as "Resource1.resx"

I can go to this file by manually double clicking it and i can manually add some string objects and values on it. But I want do it on runtime. Like I want to access it from my code. To retreive the string object and values in runtime i simply use

"Resource1.stringObject"

But how do i add string objects to it in runtime.

Can you help me with this as well

I really need to get it done as quickly as possible.

Thanks again.





Re: Windows Forms General Display Timer

Zhi-Xin Ye - MSFT

Hi, Jay
I recommend you to start a new thread for a different question for better responses. Thanks for understanding,