Окно сообщения кнопки доступа в C#
Я использую таймер в своем коде, скажем, когда таймер останавливается на 0, окно сообщения запрашивает у вас тайм-аут и показывает две кнопки "RETRY" и "CANCEL". Покажите мне функциональность, т.е. когда я нажимаю кнопку "ОТМЕНА" в окне сообщений, она выходит из всей формы окон. ниже условие if для события timer_tick:
int duration = 10;
private void timer1_Tick(object sender, EventArgs e)
{
//shows message that time is up!
duration--;
timer_label1.Text = duration.ToString();
if (duration == 0)
{
timer1.Stop();
MessageBox.Show("You Timed Out", "Oops", MessageBoxButtons.RetryCancel, MessageBoxIcon.Stop);
}
}
private void start_game_button19_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
timer1.Start();
}
2 ответа
Решение
Работать с MessageBox
и выполнять различные действия в зависимости от нажатой кнопки, необходимо назначить результат Show
вызов переменной. Show
возвращает DialogResult
значение, которое вы можете использовать, чтобы определить, какая кнопка была нажата.
var retryOrCancel = MessageBox.Show(
text: "You Timed Out",
caption: "Oops",
buttons: MessageBoxButtons.RetryCancel,
icon: MessageBoxIcon.Stop
);
switch (retryOrCancel)
{
case DialogResult.Cancel:
this.Close();
break;
case DialogResult.Retry:
StartGame();
break;
}
private void start_game_button19_Click(object sender, EventArgs e)
{
StartGame();
}
private void StartGame()
{
timer1.Enabled = true;
timer1.Start();
}
Вы можете сделать что-то вроде этого кода ниже:
var result = MessageBox.Show(
"You Timed Out",
"Oops",
MessageBoxButtons.RetryCancel,
MessageBoxIcon.Stop);
if (result == DialogResult.Cancel) {
this.Close();
}