检查datagridview是否已被编辑

时间:2012-04-27 16:10:07

标签: c# winforms

我的C#winform有一个datagridview,当我点击更新按钮时,我应该用什么代码检查是否有任何单元格被编辑?

我只需要有一个真假。

感谢。

=============================================== ============================

我现有的代码:

#region Edit Records
        private void InProSysAdministrationEventsUpdateButton_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Please Click Ok to Edit the Events", "Confirmation", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                ManipulateData.UpdateData(connectionString, tblconn, tblscmd, tbldataadaptor, tbldatatable, cmbuilder, "usp_readallevents", readalleventsdataGridView);
            }
        }
#endregion

我需要做以下事情:

1)用户点击编辑

2)系统检查是否已编辑任何单元格

3)如果没有编辑过单元格,则会显示messagebox.show(“No Changes Done。”)

4)否则,它将更新数据库。

2 个答案:

答案 0 :(得分:3)

您是否看过DataGridView.CellValueChanged事件? MSDN

为此编写处理程序并设置标志或执行您想要的任何操作都相当简单。

如何执行此操作的示例如下:

    protected override void OnLoad(EventArgs e)
    {
        myDataGridView.CellValueChanged += new DataGridViewCellEventHandler(
        myDataGridView_CellValueChanged);
    }

    private void myDataGridView_CellValueChanged(
    object sender, DataGridViewCellEventArgs e)
    {
       //some very crude examples of actions you might want to perform when the event handler is triggered.
       myObject.update();
       //or something else like
       myObject.isUpdatable = true;
    }

关于第3点,msgbox可能不是告知用户非关键事件的最佳方式。很可能他们已经知道他们没有输入任何信息,你可以通过标记所需的单元格或其他方式来提供这种反馈,而不是通过标记所需的单元格。值得深思。

将来,我建议在MSDN中搜索您正在使用的课程,并搜索您要查找的事件,方法或属性的类型,并查看是否有匹配项。 还有很多有用的例子。

答案 1 :(得分:-1)

int x=0;     
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
     x = 1;
}

if(x==1)   //this means that gridView has been updated