如何检测出datagridview中的单元格,用户曾经修改过,退出窗体时提示保存呢?

zwth003 2010-09-26 03:19:22
如何检测出datagridview中的单元格,用户曾经修改过,退出窗体时提示保存呢?
----------------------------------------
关键是如何检测出,用户曾经修改过datagridview,用什么方式来实现呢?

只要能检测出,存在修改过的单元格,就在窗体上给出一个提示文本,比如:
您已经修改了数据,请不要忘记保存

可是,我如何能检测出单元格曾经被修改过呢?
...全文
347 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-09-26
  • 打赏
  • 举报
回复
private void datagridview _CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if(datagridview .IsCurrentCellDirty)
datagridview .CommitEdit(DataGridViewDataErrorContexts.Commit);
}
zwth003 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dattotzy 的回复:]

你在CellValueChanged 事件中,需要判断 newValue 是否 与 cell.oldvalue相等
[/Quote]

能给个示例吗?如何比较新值与旧值呢?
以下代码不行的呀:

//单元格变化,则设定isValueChange标志
private void dataGrid1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
isValueChange = true;
}
lude8880 2010-09-26
  • 打赏
  • 举报
回复
lostfocus
酋长 2010-09-26
  • 打赏
  • 举报
回复
你在CellValueChanged 事件中,需要判断 newValue 是否 与 cell.oldvalue相等
酋长 2010-09-26
  • 打赏
  • 举报
回复
定义一个全局变量,bool isValueChanged = false; 在 CellValueChanged 事件中,设置 isValueChanged = true;这样,你在执行其他操作时候,可以根据 if(isValueChanged){}进行判断。
  • 打赏
  • 举报
回复
datagridview 是由数据集给的。. 你把数据集保存起来 (dataset)

当他进行别的操作时, 你用datagridview 和数据集进行一行一行比较。 有一个不一样的就停止循环

提示您已经修改了数据,请不要忘记保存

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧