http://kinbor.cnblogs.com/archive/2005/11/04/269152.html

看了Kinbor在以上页面所提出的问题,看了看发现挺有意思,可那里不能贴图,就挪到这里来了,虽然我并不提倡在这种设定值的应用中使用对DataGrid赋值来实现的方法(感觉还是他所说的现在用的改数据源的方法比较好,因为DataGrid是暴露在外面的,有太多的不确定性),不过这个问题还是值得探讨一番的。

除了在上述文章的评论中加的内容外,我又在DataGrid的Scroll事件中加入了一段代码,来输出当时所在的行
有关kinbor提出的DataGrid刷新问题续private void dgInfo_Scroll(object sender, System.EventArgs e)
}
有关kinbor提出的DataGrid刷新问题续    private void tbInfo_Leave(object sender, System.EventArgs e)
        }
我们来看一下输出的strMessage的内容:
有关kinbor提出的DataGrid刷新问题续有关kinbor提出的DataGrid刷新问题续有关kinbor提出的DataGrid刷新问题续有关kinbor提出的DataGrid刷新问题续
从图中我们可以看到,循环内容
有关kinbor提出的DataGrid刷新问题续strMessage += "Loop,Before:" + clsTest.iTempValue.ToString() + "\n";
有关kinbor提出的DataGrid刷新问题续

一共被执行了两遍,而对单元格赋值后的输出语句却没有执行,就好像在赋值的过程中,程序自动将变量减1,然后Continue了一样,而这第8行正好是DataGrid滚动后所停的行数,这个可以从最后赋值完毕后,拖动滚动条所输出的结果看出。

相关文章: