如何将属性添加到计时器控件中,以仅显示小时分钟秒而不显示毫秒

本文关键字:显示 小时 分钟 属性 添加 控件 计时器 | 更新日期: 2023-09-27 17:56:05

在控件设计器中,我有label1。在设计器中,标签文本设置为:"00:00:00:000"

然后代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Threading;
namespace WinFormsUI
{
    public partial class TimerControl : UserControl
    {
        Stopwatch sw = new Stopwatch();
        public TimerControl()
        {
            InitializeComponent();
            //Start();
        }

        public void Start()
        {
            timer1.Start();
            sw.Start();
        }
        public void Stop()
        {
            timer1.Stop();
        }
        public void Reset()
        {
            sw.Reset();
            label1.Text = "00:00:00:000";
        }
        public void NoMsSecMin()
        {
        }
        private void TimerControl_Load(object sender, EventArgs e)
        {
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            TimeSpan elapsed = sw.Elapsed;
            label1.Text = string.Format("{0:00}:{1:00}:{2:00}:{3:00}",
                          Math.Floor(elapsed.TotalHours),elapsed.Minutes,elapsed.Seconds,
                                     elapsed.Milliseconds);
        }
    }
}

我现在添加了方法 NoMsSecMin也许有更好的方法,我想添加一个属性,例如开始停止重置,我可以轻松设置是否显示毫秒或秒或分钟。

怎样才能做到这一点,以便我能够使用此方法选择不显示或显示的内容?

如何将属性添加到计时器控件中,以仅显示小时分钟秒而不显示毫秒

你需要这样的函数吗?

ShowWhatIWant(true, false, false);
private string ShowWhatIWant(bool showMinutes, bool showSeconds, bool showMiliSeconds)
{
    string text = string.Format("{0:00}", Math.Floor(elapsed.TotalHours));
    if(showMinutes)
    {
        text += string.Format(":{0:00}", elapsed.Minutes);
    }
    if(showSeconds)
    {
        text += string.Format(":{0:00}", elapsed.Seconds);
    }
    if(showMiliSeconds)
    {
        text += string.Format(":{0:00}", elapsed.Milliseconds);
    }
    return text;
}