Я хочу сделать подтверждение MessageBox. Вот окно сообщения:
DialogResult dialog = MessageBox.Show("Etes vous sûre de vouloir fermer le programme ?", "Exit",MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
Application.Exit();
}
else if (dialog == DialogResult.No)
{
e.Cancel = true;
}
Проблема в том, что когда я нажимаю кнопку «ДА», всплывающее окно не закрывается автоматически. Он закроется после того, как я еще раз нажму 2 раза. Его следует закрыть с первого раза.
Это кажется довольно простым, но я не уверен, в чем моя ошибка;
4 ответа
Если это метод закрытия основной формы, вы можете использовать его следующим образом:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Really close?", "Exit", MessageBoxButtons.YesNo) ==
System.Windows.Forms.DialogResult.No)
e.Cancel = true;
}
Если пользователь нажмет «Да», ваша форма будет закрыта из-за отсутствия закрытия. Если это не закрытие основной формы, это не означает выход из приложения. В этом случае вы можете закрыть родительскую форму явно после вызова ShowDialog
.
switch (MessageBox.Show("Etes vous sûre de vouloir fermer le programme ?", "Your_Application_Name", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
{
case DialogResult.Yes:
Application.Exit();
break;
case DialogResult.No:
//Action if No
break;
}
Позвоните Application.DoEvents()
до Application.Exit()
. Но лучше закрыть родительскую форму с помощью Close()
вместо Application.Exit.
Ниже приведен код для запроса сообщения (Да / Нет):
DialogResult dialogResult = MessageBox.Show("Are you sure to delete Yes/No", "Delete", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
/// do something here
}
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.