我有2台计算机:服务器和客户端,两个相同的winform app,同一个数据库。
我希望能够在数据库更改
上更新datagridview所以我每4秒更新一次刷新datagridview数据源的动态更新。
数据源发生变化时几乎没有问题
首先如果在datagrid中选择了一行(dataGridView_RowHeaderMouseClick),它就会失去焦点。
如果我向下滚动数据网格视图,则滚动条会跳到开头。
关于如何做到这一点的任何想法?
由于
Baaroz
答案 0 :(得分:1)
您不希望在没有任何条件的情况下每4秒刷新一次DataSource。正如你所说,有几个功能问题会受此影响(例如失去对一行的关注,虽然可以通过每次聚焦到一行时存储行句柄来解决,但不应该是你需要的东西要做的事情),没有提到如果您加载的表很大,将会出现由于不断重新加载而导致的性能问题。
您应该在每次DataSource更改时触发刷新,或者Anthbs所说的,将数据与网格的DataSource进行比较,只有在它们不同时才进行刷新。
答案 1 :(得分:0)
有几个想法可以减少刷新问题。
为了减少发生这种情况的可能性,您可以将新数据与网格中的数据进行比较,只有在数据发生变化时才刷新。
您可以在刷新网格之前存储所选索引,并在刷新后将其设置回来。