2011-03-18 117 views
2

我有一个窗体上的DataGridView,当我收到新的数据,我将记录绑定到DataGridView一个的BindingList的开始。当有足够的记录显示垂直滚动条时,它将停留在列表顶部。所以我总是看到列表顶部的最新记录。这项工作很好,至此。从选择的BindingList最后一行删除最后一个记录曹景伟的DataGridView到滚动

但是,当我添加代码以删除列表中最后一条记录时,列表中的最后一条记录会自动选中,导致滚动条一直“滚动”到列表中的最后一条记录在DataGridView的底部。我甚至之前调用RemoveAt移除后加入到ClearSelection()的调用,但它仍然滚动至底部。

我怎样才能防止这种行为?

回答

1

记录被删除之前,你总是可以让你选择一个DataGridViewRow的索引或其他这样的标识符。

在BindingSource的Changed事件,然后你可以分析你的数据,并设置正确的行。

要设置第一个显示的DataGridViewRow,使用方法:

DataGridView1.FirstDisplayedScrollingRowIndex; 

要选择相同的DataGridViewRow,用途:

DataGridView1.Rows[DataGridView1.FirstDisplayedScrollingRowIndex].Selected = true; 

记住错误检查,以确保索引值不为-1(无选择)。

+0

只是去尝试,并有到任何变化。 – Dave 2011-03-18 16:23:14