如何处理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,而你通过鼠标选择单元格。
谢谢
这是没有测试过的,但是如何存储FirstDisplayedScrollingRowIndex
的值,如果你想"禁用"滚动,只需分配它之前的值。
(源)编辑:
测试后,这将使gridview开始滚动,但滚动条仍在滚动(没有影响)。这让我想到了下一个建议:
如果您不希望允许滚动网格视图,只需删除滚动条…
this.gv.ScrollBars = ScrollBars.None;