首页 文章

对话框结果按钮单击时始终返回“取消”

提问于
浏览
0

我有一个表单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();
    }

2 回答

  • 0

    您不应该使用 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对象,所以你不能像你那样将它与字符串进行比较) .

  • 1

    当然,你正在检查名称:

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

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

相关问题