我正试图让一个计时器在winform中每秒钟打一次,当我寻找关于如何做到这一点的建议我找到了大量关于线程的东西.好吧,我不关心线程,因为我所要做的就是让值在一分钟内从60倒数到0,然后停止.我认为我们不需要进入云计算来解决这个问题,但我真的是一个网络形式,所以我在这个问题上有点生疏.任何人都可以给我一个例子
这是我尝试过的
private void button1_Click(object sender, EventArgs e)
{
this.timeLeft = 60;
this.label1.Visible = false;
this.button1.Visible = false;
gt = new Timer();
gt.Tick += new EventHandler(CountDown);
gt.Interval = 1000;
gt.Start();
}
private void CountDown(object sender, EventArgs e)
{
do
{
this.TimeBar.Value = timeLeft;
this.timeLeft -= 1;
} while (this.timeLeft > 0);
if (this.TimeBar.Value > 0) return;
gt.Stop();
this.label1.Visible = true;
this.button1.Visible = true;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
你不要,如果你使用的WinForms'定时器需要穿线.
删除页面上的Timer控件,将其命名为"timer"并粘贴以下代码:
public MainForm()
{
InitializeComponent();
timer.Interval = 1000;
timer.Start();
timeLeft = 60;
timer.Tick += Timer_Tick;
// start things
label1.Hide();
button1.Hide();
timer.Start();
}
public void Timer_Tick(object sender, EventArgs e)
{
timeLeft--;
if (timeLeft <= 0) {
timer.Stop();
label1.Show();
button1.Show();
}
}
Run Code Online (Sandbox Code Playgroud)
我想如果你来自webby背景,事件驱动的编程可能是你需要开始阅读的东西,如果你想了解桌面上的东西是如何被编程的.
| 归档时间: |
|
| 查看次数: |
23067 次 |
| 最近记录: |