我尝试检查DataGridview
(WinForms C#)中的任何单元格中的任何值是否已更改,然后再单击按钮更新代码。
为完成此任务,我创建了一个全局布尔变量gridCellChanged
,并在true
事件中将其设置为CurrentCellDirtyStateChanged
。
private void GvTieredPricing_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
gridCellChanged = true;
}
在按钮事件中,我检查
private void btnUpdate_Click_1(object sender, EventArgs e)
{
if (gridCellChanged)
{
//execute my code
}
}
此解决方案大部分时间都有效。但是,如果用户更改了第1行第1列中的值,则gridCellChanged
将设置为true。但是,当用户决定还原更改并将值设置为任何值时,gridCellChanged
仍将设置为true,代码将在按钮事件中执行。
我该如何防止这种情况?
我尝试过使用CellValueChanged
事件。但是,每次我在表单加载时加载网格时,它都会将我带到该事件,并始终将我的布尔变量设置为true,即使它没有对任何单元格进行任何更改。
有什么建议吗?