如何处理DatagridView滚动事件之前,它作出任何改变

本文关键字:改变 任何 事件 何处理 处理 滚动 DatagridView | 更新日期: 2023-09-27 18:09:32

我试图在DatagridView上重写滚动功能。(DGV与固定RowCount的滚动请求刷新它自己与新的"滚动"值,而不是向下滚动到下一个值)

我需要对事件做出反应并禁用DatagridView来对该事件做出反应(禁用滚动)。

例如:

protected override void OnScroll(ScrollEventArgs e)
{            
    ProcessScroll(e);
    //Distable DGV processing scroll request
    //base.OnScroll(e); 
}

但是,此事件发生在滚动完成后。例如FirstDisplayedScrollingRowIndex在这一点上在滚动后有新的值。

所以,请问有没有人知道如何在这个事件做出任何改变之前做出反应,并禁用它来做出任何改变?

我不能只是捕捉鼠标滚轮事件,或检测按下的键,因为你可以滚动通过DatagridView,而你通过鼠标选择单元格。

谢谢

如何处理DatagridView滚动事件之前,它作出任何改变

这是没有测试过的,但是如何存储FirstDisplayedScrollingRowIndex的值,如果你想"禁用"滚动,只需分配它之前的值。

(源)编辑:

测试后,这将使gridview开始滚动,但滚动条仍在滚动(没有影响)。这让我想到了下一个建议:
如果您不希望允许滚动网格视图,只需删除滚动条…

this.gv.ScrollBars = ScrollBars.None;