正在捕获MessageBox结果

本文关键字:MessageBox 结果 | 更新日期: 2023-09-27 18:29:07

我正试图让用户确认他们是否要使用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来打开文件对话框。显然,这不是正确的检查方法。

正在捕获MessageBox结果

您必须要求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");
} 

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

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

if (result == DialogResult.Yes)

针对您的情况。

只需请求正确的DialogResult即可。

if (result == DialogResult.Yes)

请记住,一个对话框可能会有不同类型的结果,您也可以编写自己的结果。因此:始终关注你所期望的结果和你所检查的结果。

问候,