捕获MessageBox结果

时间:2012-03-27 21:23:51

标签: c# messagebox dialogresult

我正在尝试让用户确认是否要使用MessageBox删除产品并捕获其结果。这是我的代码:

// Confirm if the user really wants to delete the product
DialogResult result = MessageBox.Show("Do you really want to delete the product \"" + productName + "\"?", "Confirm product deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.OK)
{
    MessageBox.Show("deleted");
}

当我运行代码并尝试删除产品时,删除的内容从不显示。在MSDN页面上,它表示使用MessageBoxResult而不是DialogResult,但Visual Studio无法识别MessageBoxResult,我在代码中的其他地方使用DialogResult来打开文件对话框。显然,这不是检查它的正确方法。

4 个答案:

答案 0 :(得分:6)

您必须要求DialogResult.Yes

// Confirm if the user really wants to delete the product
DialogResult result = MessageBox.Show("Do you really want to delete the product \"" +     productName + "\"?", "Confirm product deletion", MessageBoxButtons.YesNo,  MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
    MessageBox.Show("deleted");
} 

答案 1 :(得分:1)

您将消息框类型设置为yes / no,但是您尝试捕获OK结果。抓住是,你将被分类。

答案 2 :(得分:0)

您正在使用YesNo按钮,因此DialogResult.OK与它无关。 你应该做

if (result == DialogResult.Yes)

为你的病情。

答案 3 :(得分:0)

请问正确的DialogResult。

if (result == DialogResult.Yes)

请记住,对话框可以有不同类型的结果,并且您还可以编写自己的结果。因此:请始终查看您期望的结果以及您正在检查的结果。

问候,