处理来自消息框c#的回复

时间:2010-10-15 20:23:36

标签: c# wpf

如果用户单击“是”,如果用户单击“否”,则如何处理消息框回复示例?

7 个答案:

答案 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)

您应该尝试使用googlemsdn(链接可点击)。

无论如何,您应该检查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)

WPF中的子窗口是异步操作。你必须处理Close事件,然后在close事件中你可以执行你的逻辑。