Привет! Мне нужно создать форму Windows, которая имеет простое текстовое поле. Текстовое поле содержит текст, подобный таймеру (формат 00:00).
Я хочу обновлять страницу каждую секунду и соответственно изменять содержимое текстового поля. (Так же, как цифровые часы, работающие, скажем, один час!).
Я понял, что мне нужно использовать класс System.Windows.Forms.Timer
, и я сбросил элемент Timer
из панели инструментов в мою форму.
Что дальше ... Нужно ли использовать функцию Thread.Sleep(1000)
... есть идеи?
Вот код, который я пробовал. Я знаю, где в программе происходит что-то не так, и часть thread.sleep()
даже ухудшает выполнение моего кода. Я пробовал материал Timer в ToolBox, но не смог пройти. (Когда я запускаю код, он успешно компилируется, а затем приложение зависает на один час из-за грязных циклов For-Loops) Помощь !!
public partial class Form1 : Form
{
Button b = new Button();
TextBox tb = new TextBox();
//System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();
public Form1()
{
b.Click += new EventHandler(b_click);
b.Text = "START";
tb.Text = "00 : 00";
//timer1.Enabled = true;
//timer1.Interval = 1000;
tb.Location = new Point(100, 100);
this.Controls.Add(tb);
this.Controls.Add(b);
InitializeComponent();
}
private void refreshTimer_Tick()
{
for (int i = 0; i < 60; i++)
{
for (int j = 0; j < 60; j++)
{
Thread.Sleep(500);
string TempTime = string.Format("{0:00} : {1:00}",i,j);
tb.Text = TempTime;
Thread.Sleep(500);
}
}
}
public void b_click(object sender, EventArgs e)
{
refreshTimer_Tick();
}
}