Создание шахматных часов в C # - Обратный отсчет и два таймера - PullRequest
0 голосов
/ 24 мая 2019

Я относительно новичок в программировании. Я сейчас пытаюсь сделать программу Chess Clock в форме C #.

У меня есть две кнопки, одна для игрока 1 и одна для игрока 2. Затем игрок должен нажать кнопку, что означает, что время игрока должно остановиться, а время другого игрока должно начаться. Я предполагаю, что это требует двух таймеров. Я заставил один таймер работать, но я не знаю, как сделать еще один, и как заставить их взаимодействовать друг с другом.

Тогда я должен сделать обратный отсчет с 5 минут до нуля. Прямо сейчас это считается. Как я могу это сделать?

namespace ChessClock
{
    public partial class Form1 : Form
    {
        System.Timers.Timer t1;
        int h, m, s;

        public Form1()
        {
            InitializeComponent();
        }

        private void button_reset_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Are you sure", "Stop", MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {
                //   this.Close();
            }
            else if (dialogResult == DialogResult.No)
            {

            }
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button_p1_Click(object sender, EventArgs e)
        {
            t1.Enabled = !t1.Enabled;
        }

        private void button_p2_Click(object sender, EventArgs e)
        {
            t1.Enabled = !t1.Enabled;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            t1 = new System.Timers.Timer();
            t1.Interval = 1000;//1s
            t1.Elapsed += OnTimeEvent;
        }

        private void OnTimeEvent(object sender, System.Timers.ElapsedEventArgs e)
        {
            Invoke(new Action(() =>
            {
                s += 1;
                if (s == 60)
                {
                    s = 0;
                    m += 1;
                }
                if (m == 60)
                {
                    m = 0;
                    h = 1;
                }


                //Update textbox

                if (t1.Enabled)
                {
                    textBox1.Text = string.Format("{0}:{1}:{2}", h.ToString().PadLeft(2, '0'), m.ToString().PadLeft(2, '0'), s.ToString().PadLeft(2, '0'));
                }
                else
                {
                    textBox2.Text = string.Format("{0}:{1}:{2}", h.ToString().PadLeft(2, '0'), m.ToString().PadLeft(2, '0'), s.ToString().PadLeft(2, '0'));
                }

            }));
        }
    }
}
...