0

我有 2 台计算机:服务器和客户端,两者都有相同的 winform 应用程序,相同的数据库。

我希望能够在数据库更改时更新 datagridview

所以我每 4 秒更新一次代码更新,刷新 datagridview 数据源。

数据源更改时很少出现问题

首先,如果在数据网格中选择了一行(dataGridView_RowHeaderMouseClick),它将失去焦点。

如果我向下滚动datagridview,滚动条会跳到开头。

关于如何正确操作的任何想法?

谢谢

巴罗兹

4

2 回答 2

1

您不想在没有任何条件的情况下每 4 秒刷新一次 DataSource。正如你所说,有几个功能问题会受此影响(例如失去对一行的关注,虽然可以通过每次关注一行时存储行句柄来解决,但不应该是你需要的东西要做),没有提到如果您正在加载的表很大,则会由于不断重新加载而导致性能问题。

您应该在每次 DataSource 更改时触发刷新,或者按照 Anthbs 的说法,将数据与网格的 DataSource 进行比较,并且仅在它们不同时才刷新。

于 2012-12-05T19:20:21.110 回答
0

这是减少刷新问题的几个想法。

  • 为了减少发生这种情况的机会,您可以将新数据与网格中的数据进行比较,仅在数据发生更改时才刷新。

  • 您可以在刷新网格之前存储选定的索引,并在刷新后将其设置回来。

于 2012-12-05T02:51:42.493 回答