C# 点击按钮后的秒表和重置时间

C# 点击按钮后的秒表和重置时间,c#,winforms,C#,Winforms,我目前正在学习如何使用C#中的秒表属性。我有一个启动秒表的按钮1。我想将时间重置为0,然后在第二次单击后重新开始,依此类推。如何在每次连续单击按钮后重置秒表计时器 代码 namespace stopwatch { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Stopwatc

我目前正在学习如何使用C#中的秒表属性。我有一个启动秒表的
按钮1
。我想将时间重置为0,然后在第二次单击后重新开始,依此类推。如何在每次连续单击按钮后重置秒表计时器

代码

namespace stopwatch
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();    
        }

        Stopwatch sw = new Stopwatch();

        private void button1_Click(object sender, EventArgs e)
        { 
            sw.Start();   
            TimeSpan x = sw.Elapsed;
            textBox1.Text = x.ToString();                   
        }                
    }
}
使用

请尝试以下代码片段:

private void button1_Click(object sender, EventArgs e)
{
    sw = Stopwatch.StartNew();

    // ... do something ...

    sw.Stop();

    textBox1.Text = sw.Elapsed.ToString();
}

您是否希望
x
大于0?除此之外,
Stopwatch
还有一种方法可以满足您的需求。您在第二次单击时是否尝试过任何操作?这将始终不会返回经过的时间。。。不是上次单击后经过的时间显示值后您肯定希望重新启动
吗?当然是的,这很明显:)我刚刚更新了我的答案,我没有使用
StartNew()
由于创建了秒表的新insatnce-1,因此成本更高,考虑到以下要求,我认为这似乎不正确
我想将时间重置为0,然后在第二次单击后重新开始,依此类推。
。点击按钮后,被截取的代码将使秒表处于停止状态,他需要重置为0并重新启动。顺便问一下,为什么每次都需要一个新的
秒表实例?我同意这个观点:。基本上,我认为你的答案是不正确的,所以你必须提供一些论据或纠正它,否则将不会是这样一个有帮助的社区。不是针对个人,我也有很多不正确的甚至是令人困惑的答案被否决,我会删除我的否决票,请花更多的时间检查你的答案是否正确,还有一种情况是,问题混淆要求是-
我想将时间重置为0,并在第二次单击后重新开始,依此类推,但在您的情况下,秒表将在按钮单击后停止,因为
sw.Stop()
,现在清楚了吗?因此,
我如何在每次连续单击按钮后重置秒表计时器
-因此他需要重置秒表,而不是停止它,因此在每次单击按钮后,SW只需从0Ok开始计数,并在按钮点击处理程序的末尾放置
SW.Stop()
,从而使SW处于停止状态!如果StartNew是一种如此昂贵的方法,那么为什么它会出现在库中呢。这仅仅是因为微软的开发人员没有能力把它放在那里。最后,这是一个无用的论证。
Stopwatch sw = new Stopwatch();
private void button1_Click(object sender, EventArgs e)
{
    sw.Stop();
    TimeSpan x = sw.Elapsed;
    textBox1.Text = x.ToString();

    // >= .NET 4
    sw.Restart();    

    // >=.NET 2.0
    sw.Reset();
    sw.Start();                   
}
    private void button1_Click(object sender, EventArgs e)
    {
            sw.Stop();

            TimeSpan x = sw.Elapsed;

            textBox1.Text = x.ToString();

            sw.Restart();
     }