如何在进行任何更改之前处理DatagridView滚动事件

时间:2014-06-19 09:53:21

标签: c# datagridview scroll

我试图覆盖DatagridView上的滚动功能。 (具有固定RowCount的DGV,在滚动请求时使用新的"自动刷新"值而不是向下滚动到下一个值)

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

类似的东西:

protected override void OnScroll(ScrollEventArgs e)
{            
    ProcessScroll(e);

    //Distable DGV processing scroll request
    //base.OnScroll(e); 
}

但是滚动完成后会发生此事件。例如,此时FirstDisplayedScrollingRowIndex在滚动后具有新值。

所以,任何人都可以知道如何在进行任何更改之前对此事件作出反应,并禁用它以进行任何更改吗?

我无法捕捉鼠标滚轮事件或检测到预设的键,因为您可以在通过鼠标选择单元格时滚动DatagridView。

谢谢

1 个答案:

答案 0 :(得分:0)

这未经过测试,但是如何存储FirstDisplayedScrollingRowIndex的值并且如果要“禁用”滚动,只需为其指定前一个值。

source

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

this.gv.ScrollBars = ScrollBars.None;