Привет, мне нужно создать форму Windows Form с простым текстовым полем. Текстовое поле содержит таймер в виде текста (формат 00:00).
Я хочу обновлять страницу каждую секунду и соответствующим образом изменять содержимое текстового поля. (Так же, как цифровые часы, работающие, скажем, один час!).
Я понял, что мне нужно использовать класс System.Windows.Forms.Timer
, и я перенес элемент Timer
из ToolBox в свою форму.
Что дальше ... Мне нужно использовать функцию Thread.Sleep (1000)
... какие-нибудь идеи?
Вот фрагмент кода, который я пробовал. Я знаю, где в программе что-то не так, а часть thread.sleep ()
даже ухудшает выполнение моего кода. Я попробовал использовать таймер в 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();
}
}