【问题标题】:DataGridView Sort repositions the horizontal position of grid slightlyDataGridView 排序稍微重新定位网格的水平位置
【发布时间】:2010-08-04 22:35:47
【问题描述】:

我有一个包含很多列的 DataGridView,这会导致水平滚动条。但是,当我一直向右滚动并在列上排序时,datagridview 会稍微重新定位,但滚动条一直保持在右侧。

我想停止这种行为并将网格保持在排序之前的相同位置,如果可能的话,我想继续在网格中使用自动排序。

我找到了这个link,这个人也有同样的问题,但是,那里提出的解决方案似乎不适用,因为我没有进行手动排序。

有什么想法吗?

【问题讨论】:

    标签: winforms datagridview .net-2.0


    【解决方案1】:

    我通过执行以下操作解决了这个问题。

    我订阅了 DataGridView.Scroll 事件,如果 ScrollOrientation 是 Horizo​​ntal 那么我将一个成员变量设置为滚动的 NewValue。

    然后我订阅了 DataGridView.Sorted 事件。在这种情况下,我将 Horizo​​ntalScrollingOffset 设置为成员变量。

    
    int _horizontalOffsetStop;
    
    private void Grid_Scrolled(object sender, ScrollEventArgs e)
    {
         if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
         {
              _horizontalOffsetStop = e.NewValue;
         }
    }
    
    private void Grid_Sorted(object sender, EventArgs e)
    {
         myGrid.HorizontalScrollingOffset = _horizontalOffsetStop;
    }
    
    

    【讨论】:

    • 不幸的是,这对我不起作用。这个问题还有其他解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多