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