如果用户单击“是”,如果用户单击“否”,则如何处理消息框回复示例?
答案 0 :(得分:19)
来自the docs的示例(稍加修改):
const string message =
"Are you sure that you would like to close the form?";
const string caption = "Form Closing";
var result = MessageBox.Show(message, caption,
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
// If the no button was pressed ...
if (result == DialogResult.No)
{
//Do something for No
}
else if (result == DialogResult.Yes)
{
//Do something else for Yes
}
附录:如果您仍然使用.NET 2.0并且无法访问var
关键字,请将result
声明为{{1} }}。即:
DialogResult
错过了这个用WPF标记的事实,所以如果你正在使用它,那么你将使用稍微(但不是太多)不同的System.Windows.MessageBox类而不是System.Windows.Forms.Messagebox 。交互大致相同,但也使用MessageBoxResult枚举而不是DialogResult,MessageBoxImage枚举而不是MessageBoxIcon,以及MessageBoxButton枚举而不是MessageBoxButtons(复数)。你应该可以这样做:
DialogResult result = MessageBox.Show(...);
答案 1 :(得分:4)
由于标签声明了WPF和 NOT WinForms ,因此您需要对MessageBox执行类似的操作:
MessageBoxResult result = MessageBox.Show("Foo Bar?", "Confirmation", MessageBoxButton.YesNoCancel);
if (result == MessageBoxResult.Yes)
{
// yeah yeah yeah stuff
}
else if (result == MessageBoxResult.No)
{
// no no no stuff
}
else
{
// forget about it
}
此外,WPF中的对话框也有不同的处理方式,注意缺少DialogResult
:
SomeDialog dialog = new SomeDialog();
dialog.ShowDialog();
if (dialog.DialogResult.HasValue && dialog.DialogResult.Value)
MessageBox.Show("Clicked ok");
else
MessageBox.Show("Clicked cancel");
答案 2 :(得分:3)
无论如何,您应该检查show方法返回的messageboxresult的值。 http://msdn.microsoft.com/en-us/library/ms598674.aspx
答案 3 :(得分:2)
对我来说最好的是
if (MessageBox.Show("Are you sure you want to close the window ?", "Question", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
{
//do NO stuff
}
else
{
//do YES stuff
}
答案 4 :(得分:1)
DialogResult result = MessageBox.Show("Some Text", "Title", MessageBoxButtons.YesNoCancel);
if(result == DialogResult.Yes)
{
// do something
}
答案 5 :(得分:0)
以下是一个例子:
DialogResult userSelection = MessageBox.Show("Some question","Question",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
// Do something with userSelection
答案 6 :(得分:0)