C#计时器自动启动

时间:2015-02-25 17:53:56

标签: c# winforms

我不知道为什么我的计时器会自动启动。也许有人可以帮忙吗?

public int sek;
void TextBox1TextChanged(object sender, EventArgs e)
{
    sek = sek+Convert.ToInt32(textBox1.Text);           
}

void Button1Click(object sender, EventArgs e)
{
    label2.Text = Convert.ToString(sek);
    timer1.Start();
}

void Label2Click(object sender, EventArgs e)
{

}

void Timer1Tick(object sender, EventArgs e)
{
    label2.Text = Convert.ToString(sek);
    if (sek==0){
        Console.Beep(1000 ,500);
        MessageBox.Show("Times is out");
        timer1.Stop();
    }           
}

3 个答案:

答案 0 :(得分:5)

如果设计者将Timer.Enabled属性设置为true,则可能导致此问题:

  

将Enabled设置为true与调用Start 相同,而将Enabled设置为false与调用Stop相同。

所以不要在设计师属性中设置它 - 也就是说,保持False。


注意:对于WinForms应用程序,初始化[sub-]控件并在适用的“InitializeComponent”方法中设置属性(根据设计者)。这可以通过查看< form> .Designer.cs文件来验证。

答案 1 :(得分:4)

计时器的Enabled属性指示其当前是否正在运行。

由于您在设计器中将该属性设置为True,因此计时器将从运行状态开始。只需将其设置为False即可开始停止。

@GrawCube提供的示例图片:

property box

答案 2 :(得分:0)

由于您使用的是winforms计时器,您需要将其初始状态设置为禁用,否则它将立即开始计时。

请参阅:https://msdn.microsoft.com/en-us/library/system.windows.forms.timer.enabled(v=vs.110).aspx