0

我有一个表格 PatientInformation,它有一个 datagridview 用于显示数据库中的现有记录。我还有另一种形式用于更新 datagridview 中存在的记录。

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

我的表单还包含Form Closed 事件的方法。这是导致问题的原因吗?

我的调用语句如下:

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();
    }
4

2 回答 2

1

您不应该使用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 方法返回一个 DialogResult 对象,因此您无法像以前那样将其与字符串进行比较)进行比较。

于 2013-04-02T10:42:35.507 回答
0

当然,您正在检查名称:

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

        if (diagResult == DialogResult.OK)
        {
           dtgrdviewSearchOutput.Refresh();
           DipslayMessage("Record Updated Successfuly!!");
        }
于 2013-04-02T10:31:50.440 回答