2

我的问题与以下内容完全相同:

DataGridView 和滚动位置的问题

每次我DataGridView在父面板中编辑单元格时,都会重置其滚动条。当更改中的选择发生变化时也会发生这种情况DataGridView。但是,我需要保留面板,因为其中有两个DataGridViews,并且希望能够滚动浏览它们。

我已经设法通过监听Scroll面板的事件来缓解一些问题,跟踪滚动条的值,并在SelectionChangeCellEndEdit上的事件中重新应用这些值DataGridViews,但是这感觉不是一个很好的解决方案和当滚动变为 0 然后又回到我设置的值时,它会使屏幕抖动。谁能指出我更好的方向,或者知道阻止面板重置其滚动条的方法?

4

1 回答 1

4

我在这里找到了一种解决方法:

http://nickstips.wordpress.com/2010/03/03/c-panel-resets-scroll-position-after-focus-is-lost-and-regained/

通过覆盖ScrollToControl并返回this.DisplayRectangle.Location它解决了我遇到的滚动问题。

protected override Point ScrollToControl(Control activeControl)
{
    return this.DisplayRectangle.Location;
}
于 2013-06-27T10:33:20.760 回答