Я относительно новичок в программировании. Я сейчас пытаюсь сделать программу 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'));
}
}));
}
}
}