3

メッセージボックスの確認をしたい。メッセージボックスは次のとおりです。

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

メイン フォームの close メソッドにある場合は、次のように使用できます。

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 に答える