【问题标题】:Catching MessageBox result捕获 MessageBox 结果
【发布时间】:2012-04-11 11:30:00
【问题描述】:

我正在尝试让用户确认他们是否要使用 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");
}

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

【问题讨论】:

    标签: c# messagebox dialogresult


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您已将消息框类型设置为“是/否”,但您正在尝试捕获 OK 结果。抓住是,你就会被排序。

      【讨论】:

        【解决方案3】:

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

        if (result == DialogResult.Yes)
        

        根据你的情况。

        【讨论】:

          【解决方案4】:

          只要求正确的 DialogResult。

          if (result == DialogResult.Yes)
          

          请记住,对话可以有不同类型的结果,您也可以编写自己的结果。因此:始终关注您期望的结果和您正在检查的结果。

          您好,

          【讨论】:

            猜你喜欢
            • 2012-08-20
            • 1970-01-01
            • 2012-06-02
            • 1970-01-01
            • 2014-11-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-30
            相关资源
            最近更新 更多