1

我的 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)否则,它将更新数据库。

4

2 回答 2

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 中搜索您正在使用的类,并搜索您正在寻找的事件、方法或属性的类型,看看是否有任何匹配项。也有很多有用的例子。

于 2012-04-27T16:20:43.963 回答
-1
int x=0;     
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
     x = 1;
}

if(x==1)   //this means that gridView has been updated
于 2016-06-02T00:09:07.537 回答