3

我想做一个 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

4 回答 4

6

如果它是主要形式的关闭方法,您可以像这样使用它:

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在这种情况下,您可以在调用后显式关闭父表单。

于 2016-04-28T07:42:48.113 回答
4

以下是提示消息的代码(是/否):

DialogResult dialogResult = MessageBox.Show("Are you sure to delete Yes/No", "Delete", MessageBoxButtons.YesNo);

if (dialogResult == DialogResult.Yes)
{
   /// do something here        
}
于 2016-07-28T11:05:26.967 回答
1

打电话Application.DoEvents()之前Application.Exit()。但最好用Close()Application.Exit 来关闭父窗体。

于 2016-04-28T07:47:20.740 回答
0
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;

        }
于 2016-04-28T08:01:23.580 回答