如何用c#语句写dataGridView1的 CellValueChanged 事件没有被触发

如何用c#语句写dataGridView1的CellValueChanged事件没有被触发,也就是如何证明dataGridView1中的值没有改变... 如何用c#语句写dataGridView1的 CellValueChanged 事件没有被触发,也就是如何证明dataGridView1中的值没有改变 展开
 我来答
kyo71577
2011-12-01 · TA获得超过139个赞
知道小有建树答主
回答量:356
采纳率:100%
帮助的人:160万
展开全部
方法临时想了一个,比如外部声明一个int i=0;
然后在dataGridView1的 CellValueChanged 事件随便写个什么,想什么“i++”之类的。
然后判断“i”是不是还是为0就行了。

可能有更好的办法,不过暂时没想到。
追问
哥们我觉得你这个方法非常妙,但是为什么就是不对呢,好像dataGridView中值改变时触发的事件不是CellValueChanged,但触发的是哪个事件知道吗
追答
这个我也没试过,不是CellValueChanged的话我记得还一个CellValueChanging,CellValueClick什么的,说实话用的少。
kas68310
推荐于2018-04-15 · TA获得超过3637个赞
知道大有可为答主
回答量:1468
采纳率:33%
帮助的人:1176万
展开全部
获取焦点时取单元格值,在失去焦点时判断是否一致
string tempCellValue = null;
ArrayList alChangeCells=new ArrayList();
/// <summary>
/// 获取焦点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgvItems_CellLeave(object sender, DataGridViewCellEventArgs e)
{
tempCellValue = fmtString(dgvItems.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
}

/// <summary>
/// 失去焦点
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dgvItems_CellValidated(object sender, DataGridViewCellEventArgs e)
{
string curValue = fmtString(dgvItems.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
//if (tempCellValue == curValue)
//{
// MessageBox.Show("值没变");
//}
//else
//{
// MessageBox.Show("值变了");
//}
if (tempCellValue != curValue && !alChangeCells.Contains(e.RowIndex.ToString() + "-" + e.ColumnIndex.ToString()))
{
alChangeCells.Add(e.RowIndex.ToString() + "-" + e.ColumnIndex.ToString());
}
}

/// <summary>
/// 格式化值去除Null
/// </summary>
/// <param name="val">Cell Value</param>
/// <returns></returns>
private string fmtString(object val)
{
return val == null ? "" : val.ToString();
}
需要判断时,alChangeCells.Count>0,则有单元格被改变.
循环输出alChangeCells的项,就是 "行索引-列索引"
用split('-')分割就可以得到行列定位.
-------
如果你要做的更细一点,就要用hashtable记录每个曾经动过的单元格的初始值,而不是用一个string,这样每次比较的对象就是原始值,那么在单元格改了一次又改回来时,可以从改变列表里把这个项给清除掉.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式