58

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

MessageBox.Show("Do you want to save changes?", "Confirmation", messageBoxButtons.YesNoCancel);

そして、私は(擬似コードで)このようなものを作りたいです:

if (MessageBox.Result == DialogResult.Yes)
    ;
else if (MessageBox.Result == DialogResult.No)
    ;
else
    ;

C#でそれを行うにはどうすればよいですか?

4

5 に答える 5

139
DialogResult result = MessageBox.Show("Do you want to save changes?", "Confirmation", MessageBoxButtons.YesNoCancel);
if(result == DialogResult.Yes)
{ 
    //...
}
else if (result == DialogResult.No)
{ 
    //...
}
else
{
    //...
} 
于 2012-05-27T20:44:56.583 に答える
13

1行で行うこともできます:

if (MessageBox.Show("Text", "Title", MessageBoxButtons.YesNo) == DialogResult.Yes)

そして、メッセージボックスを一番上に表示したい場合:

if (MessageBox.Show(new Form() { TopMost = true }, "Text", "Text", MessageBoxButtons.YesNo) == DialogResult.Yes)
于 2012-05-27T20:52:10.713 に答える
6

WPFを使用していて、前の回答が役に立たない場合は、次を使用して結果を取得できます。

var result = MessageBox.Show("Message", "caption", MessageBoxButton.YesNo, MessageBoxImage.Question);

if (result == MessageBoxResult.Yes)
{
    // Do something
}
于 2016-01-07T04:04:33.583 に答える
2

この回答はうまくいかなかったので、 MSDNに進みました。そこで、コードは次のようになるはずであることがわかりました。

//var is of MessageBoxResult type
var result = MessageBox.Show(message, caption,
                             MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question);

// If the no button was pressed ... 
if (result == DialogResult.No)
{
    ...
}

それが役に立てば幸い

于 2014-10-17T10:03:00.150 に答える