zoukankan      html  css  js  c++  java
  • WPF计时器

    using System;
    using System.Windows;
    using System.Windows.Threading;
    
    namespace WpfStopWatch
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            /// <summary>
            /// 状态
            /// </summary>
            enum State
            {
                Start,
                Pause,
                End
            }
    
            /// <summary>
            /// 状态
            /// </summary>
            State _state = State.End;
    
            /// <summary>
            /// 计时用
            /// </summary>
            TimeSpan _timeSpan = new TimeSpan(0,0,0,0,0);
    
            public MainWindow()
            {
                InitializeComponent();
    
                var t = new DispatcherTimer();
                t.Interval = new TimeSpan(0,0,0,1);
                t.Tick += OnTimer;
                t.IsEnabled = true;
                t.Start();
            }
    
            /// <summary>
            /// 时钟回调
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void OnTimer(object sender, EventArgs e)
            {
                switch (_state)
                {
                        case State.Start:
                        {
                            _timeSpan += new TimeSpan(0,0,0,1);
                        }break;
                        case State.Pause:
                        {
                            
                        }
                        break;
                        case State.End:
                        {
                            _timeSpan = new TimeSpan();
                            //_timeSpan = new TimeSpan(0, 23, 12, 45, 54);
                        }
                        break;
                }
    
                var time = string.Format("{0:D2}:{1:D2}:{2:D2}", _timeSpan.Hours, _timeSpan.Minutes, _timeSpan.Seconds);
                textBox1.Text = time;
            }
    
            /// <summary>
            /// 退出
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button4_Click(object sender, RoutedEventArgs e)
            {
                Close();
            }
    
            /// <summary>
            /// 开始
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                _state = State.Start;
            }
            /// <summary>
            /// 暂停
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button2_Click(object sender, RoutedEventArgs e)
            {
                _state = State.Pause;
            }
            /// <summary>
            /// 停止
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button3_Click(object sender, RoutedEventArgs e)
            {
                _state = State.End;
            }
        }
    }
    

  • 相关阅读:
    CopyOnWriteArrayList设计思路与源码分析
    点击页面按钮以excel保存到本地
    上传图片
    关于重复点击的
    去首尾空格还有换行问题//把数字换位大写字母//向后台传输数据
    判断输入的时间与当前的时间(判断时间是今天还是以前的)
    前端的一些小技巧
    git 操作大全
    移动web开发常见问题解决方案
    响应式布局
  • 原文地址:https://www.cnblogs.com/simonryan/p/3678581.html
Copyright © 2011-2022 走看看