C# 面板滚动重置中的DataGridView

C# 面板滚动重置中的DataGridView,c#,winforms,datagridview,scrollbar,panel,C#,Winforms,Datagridview,Scrollbar,Panel,我的问题与以下问题完全相同: 每次我在DataGridView中编辑单元格时,父面板都会重置其滚动条。当DataGridView中的选择更改时,也会发生这种情况。一、 但是,需要保留面板,因为我有两个datagridview,并且希望能够滚动浏览这两个视图 通过收听面板的Scroll事件,跟踪滚动条的值,并在datagridview上的SelectionChange和CellEndEdit事件中重新应用这些值,我已经设法缓解了一些问题,然而,这感觉不是一个很好的解决方案,它会使屏幕抖动,因为滚

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

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


通过收听面板的
Scroll
事件,跟踪滚动条的值,并在
datagridview
上的
SelectionChange
CellEndEdit
事件中重新应用这些值,我已经设法缓解了一些问题,然而,这感觉不是一个很好的解决方案,它会使屏幕抖动,因为滚动变为0,然后又回到我设置的值。有谁能给我指出一个更好的方向,或者知道一种阻止面板重置滚动条的方法吗?

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

通过覆盖
ScrollToControl
并返回
this.DisplayRectangle.Location
它修复了我的滚动问题

protected override Point ScrollToControl(Control activeControl)
{
    return this.DisplayRectangle.Location;
}

我在这里找到了一个可行的解决方法:

通过覆盖
ScrollToControl
并返回
this.DisplayRectangle.Location
它修复了我的滚动问题

protected override Point ScrollToControl(Control activeControl)
{
    return this.DisplayRectangle.Location;
}

我错过什么了吗?这个问题不清楚吗?难道这根本不可能吗?我错过了什么吗?这个问题不清楚吗?难道这根本不可能吗?