对话结果总是返回&取消"点击按钮

本文关键字:按钮 quot 取消 返回 对话 结果 | 更新日期: 2023-09-27 18:04:15

我有一个表单PatientInformation,它有一个用于显示数据库中现有记录的datagridview。我还有另一个用于更新datagridview中的记录的表单。

因此,我需要刷新datagridview以考虑更新。我在更新表单上有2个按钮(取消,更新)。现在的问题在于这里:我的对话框结果总是返回'取消',即使我点击更新按钮。

我的表单还包含一个 form Closed event的方法。这是导致问题的原因吗?

我的调用语句如下:

diagResult = patientUpdateVlObject.ShowDialog();
if (diagResult.ToString() == "Update")
{
   dtgrdviewSearchOutput.Refresh();
   DipslayMessage("Record Updated Successfuly!!");
}
else
   //Do nothing.

和我在更新表单中的表单关闭方法如下:

private void PatientUpdate_FormClosed(object sender, FormClosedEventArgs e)
    {
        this.Dispose();
    }

对话结果总是返回&取消"点击按钮

您不应该使用diagResult.ToString() == "Update",因为当您这样做时,您将控件名称转换为字符串。

要解决这个问题,你应该这样修改你的代码:

private void buttonMessageBox_Click(object sender, EventArgs e)
{
    if (MessageBox.Show("Click '"OK'" if you agree with this", "MessageBoxTest", MessageBoxButtons.OKCancel)
        == DialogResult.OK)
    {
        MessageBox.Show("User clicked in '"OK'"");
    }
    else
    {
        MessageBox.Show("User clicked in '"Cancel'"");
    }
}

在这个例子中,我删除了ToString方法,现在我将其与DialogResult.OK (MessageBox)进行比较。Show Method返回一个dialgresult对象,所以你不能像之前那样将它与字符串进行比较。

当然,您要检查名称:

http://msdn.microsoft.com/en-us/library/2chz8edb.aspx

        if (diagResult == DialogResult.OK)
        {
           dtgrdviewSearchOutput.Refresh();
           DipslayMessage("Record Updated Successfuly!!");
        }