396

Yes/Noで選べるシンプルなMessageBoxを作りたいのですが、そのためのフォームをデザインするのはナンセンスだと思います。これを達成するために、MessageBox を使用したり、ボタンを追加したりできると思いました。簡単ですが、DialogResult が返ってこないので、どうやって結果を取得するのでしょうか?

4

11 に答える 11

879

これはそれを行う必要があります:

DialogResult dialogResult = MessageBox.Show("Sure", "Some Title", MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
    //do something
}
else if (dialogResult == DialogResult.No)
{
    //do something else
}
于 2010-06-14T11:37:33.520 に答える
61
DialogResult dr = MessageBox.Show("Are you happy now?", 
                      "Mood Test", MessageBoxButtons.YesNo);
switch(dr)
{
   case DialogResult.Yes:
      break;
   case DialogResult.No:
      break;
}

MessageBoxクラスはあなたが探しているものです。

于 2010-06-14T11:34:28.567 に答える
36
MessageBox.Show(title, text, messageboxbuttons.yes/no)

これにより、確認できる DialogResult が返されます。

例えば、

if(MessageBox.Show("","",MessageBoxButtons.YesNo) == DialogResult.Yes)
{
   //do something
}
于 2010-06-14T11:34:40.113 に答える
18

MessageBoxDialogResults を生成します

DialogResult r = MessageBox.Show("Some question here");

ボタンも簡単に指定できます。その他のドキュメントは、http://msdn.microsoft.com/en-us/library/ba2a6d06.aspxにあります。

于 2010-06-14T11:34:02.983 に答える
8

このバリアントをテキスト文字列で使用することもできます。C# 2012 でテストされた、完全に変更されたコード (Mikael のコード) は次のとおりです。

// Variable
string MessageBoxTitle = "Some Title";
string MessageBoxContent = "Sure";

DialogResult dialogResult = MessageBox.Show(MessageBoxContent, MessageBoxTitle, MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
    //do something
}
else if (dialogResult == DialogResult.No)
{
    //do something else
}

あなたは後にすることができます

.YesNo

メッセージ アイコンを挿入する

, MessageBoxIcon.Question
于 2013-05-26T20:00:00.133 に答える
7

@Mikael Svensonの答えは正しいです。それにちょっとした追加をしたかっただけです:

Messagebox アイコンを含めることもでき、以下のような追加のプロパティがあります。

DialogResult dialogResult = MessageBox.Show("Sure", "Please Confirm Your Action", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
于 2015-12-15T10:52:47.310 に答える
1
dynamic MsgResult = this.ShowMessageBox("Do you want to cancel all pending changes ?", "Cancel Changes", MessageBoxOption.YesNo);

if (MsgResult == System.Windows.MessageBoxResult.Yes)
{
    enter code here
}
else 
{
    enter code here
}

詳細はこちらからチェック

于 2014-06-15T19:29:20.197 に答える