C# 如何在时间上增加?

C# 如何在时间上增加?,c#,winforms,timer,stopwatch,C#,Winforms,Timer,Stopwatch,我正在创建一个秒表类型的应用程序。我用了一个标签来显示时间。当应用程序启动时,标签被初始化为“00:00:00”,我想每1秒增加一次它的时间 我想用定时器来完成这项工作。我希望你能理解 private void Button1_Click(System.Object sender, System.EventArgs e) { Timer1.Interval = 1000; Timer1.Start(); } private void Timer1_Tick(System

我正在创建一个秒表类型的应用程序。我用了一个标签来显示时间。当应用程序启动时,标签被初始化为“00:00:00”,我想每1秒增加一次它的时间

我想用定时器来完成这项工作。

我希望你能理解

private void Button1_Click(System.Object sender, System.EventArgs e)
{

      Timer1.Interval = 1000;
      Timer1.Start();
}
private void Timer1_Tick(System.Object sender, System.EventArgs e)
{
        this.Label1.Text = DateTime.Now.ToString("hh/mm/ss");

 }
问候

我希望能理解

private void Button1_Click(System.Object sender, System.EventArgs e)
{

      Timer1.Interval = 1000;
      Timer1.Start();
}
private void Timer1_Tick(System.Object sender, System.EventArgs e)
{
        this.Label1.Text = DateTime.Now.ToString("hh/mm/ss");

 }

关于计时器中的

获取系统时间,因此计时器的间隔必须非常小,如200ms。要计算时间,只需计算currentTime-startTIme(以秒为单位)。

在计时器中获取系统时间,因此计时器的间隔必须非常小,如200ms。要计算您的时间,只需计算currentTime-startTIme(以秒为单位)。

您需要时间

比如:

TimeSpan current = new TimeSpan(0);

// In your update loop:

current += TimeSpan.FromSeconds(1);
你想要这个

比如:

TimeSpan current = new TimeSpan(0);

// In your update loop:

current += TimeSpan.FromSeconds(1);

我的一个应用程序上有计时器

private int _seconds;

public string TimeDisplay
{
    get
    {
        TimeSpan ts = new TimeSpan( 0, 0, _seconds );
        return string.Format("{0,2:00}:{1,2:00}:{2,2:00}", ts.Minutes, ts.Minutes, ts.Seconds);
    }
}

你所要做的就是让你的计时器滴答滴答地增加秒数,如果你绑定到它,就通知PropertyChanged()。无论哪种方式,TimeDisplay都会显示您的结果。

我的一个应用程序上有一个计时器

private int _seconds;

public string TimeDisplay
{
    get
    {
        TimeSpan ts = new TimeSpan( 0, 0, _seconds );
        return string.Format("{0,2:00}:{1,2:00}:{2,2:00}", ts.Minutes, ts.Minutes, ts.Seconds);
    }
}

你所要做的就是让你的计时器滴答滴答地增加秒数,如果你绑定到它,就通知PropertyChanged()。无论哪种方式,TimeDisplay都会显示您的结果。

如果我没有弄错,它肯定会工作。将初始标签文本设置为“00:00:00”。将计时器间隔设置为1000

private void btnStartWatch_Click(object sender, EventArgs e)
{
    timer1.Enabled = true;
}

private void btnPauseWatch_Click(object sender, EventArgs e)
{
    timer1.Enabled = false;
}

int i = 1;
DateTime dt = new DateTime();
private void timer1_Tick(object sender, EventArgs e)
{
    label1.Text = dt.AddSeconds(i).ToString("HH:mm:ss");
    i++;
}

希望有帮助。

如果我没弄错的话,它肯定会有用的。将初始标签文本设置为“00:00:00”。将计时器间隔设置为1000

private void btnStartWatch_Click(object sender, EventArgs e)
{
    timer1.Enabled = true;
}

private void btnPauseWatch_Click(object sender, EventArgs e)
{
    timer1.Enabled = false;
}

int i = 1;
DateTime dt = new DateTime();
private void timer1_Tick(object sender, EventArgs e)
{
    label1.Text = dt.AddSeconds(i).ToString("HH:mm:ss");
    i++;
}

希望有帮助。

您在哪一部分遇到问题?把你目前掌握的代码贴出来。你有什么问题?发布到目前为止的代码。DateTime.Now.ToString();它会将计时器设置为系统时间。我在查询中提到,我正在创建一个秒表类型的应用程序。应该从00:00开始:00@MuhammadAliDildar,你不能计算一下系统时间和你的启动时间的差吗?@L.B:不需要。最好改变你的方法。这可能会变得非常困难confusing@rapsalands我不建议任何方法。这是对
的回答,它会将计时器设置为系统时间
DateTime.Now.ToString();它会将计时器设置为系统时间。我在查询中提到,我正在创建一个秒表类型的应用程序。应该从00:00开始:00@MuhammadAliDildar,你不能计算一下系统时间和你的启动时间的差吗?@L.B:不需要。最好改变你的方法。这可能会变得非常困难confusing@rapsalands我不建议任何方法。这是对
的回答,它会将计时器设置为系统时间
这种方法的问题是,没有任何东西可以保证您的
timer1_Tick
方法会精确地每秒调用一次。Windows唯一能保证的是,调用timer tick函数之间至少需要一秒钟的时间。所以,如果你让它运行一天,而你仍在使用你的电脑,它可能会读得有点慢。计算所用时间的正确方法是取当前时间减去开始时间,给出从开始到现在所用的时间。@GregHewgill:Good point。但是,如果问题中提到的是秒表,那么这种方法可能工作得很好。这种方法的问题是,没有任何东西可以保证您的
timer1\u Tick
方法每秒都会被精确调用。Windows唯一能保证的是,调用timer tick函数之间至少需要一秒钟的时间。所以,如果你让它运行一天,而你仍在使用你的电脑,它可能会读得有点慢。计算所用时间的正确方法是取当前时间减去开始时间,给出从开始到现在所用的时间。@GregHewgill:Good point。但是,如果问题中提到的是秒表,那么这种方法可能工作得很好。这种方法的问题是没有任何东西可以保证您的
timer1\u Tick
事件方法每秒都会被精确调用。Windows唯一能保证的是,调用timer tick函数之间至少需要一秒钟的时间。所以,如果你让它运行一天,而你仍在使用你的电脑,它可能会读得有点慢。计算已用时间的正确方法是取当前时间减去开始时间,给出从开始到现在的已用时间量。这种方法的问题是没有任何东西可以保证您的
timer1\u Tick
事件方法每秒都会被精确调用。Windows唯一能保证的是,调用timer tick函数之间至少需要一秒钟的时间。所以,如果你让它运行一天,而你仍在使用你的电脑,它可能会读得有点慢。计算经过时间的正确方法是取当前时间减去开始时间,给出从开始到现在的经过时间。