当前位置:  开发笔记 > 编程语言 > 正文

如何从DataGridView接收"滚动框"类型的滚动事件?

如何解决《如何从DataGridView接收"滚动框"类型的滚动事件?》经验,为你挑选了1个好方法。

我有一个DataGridView,我正在听它的Scroll事件.这给了我一个ScrollEventArgs对象,其Type成员应该告诉我已经发生的滚动事件的类型.在MSDN文档页面上,它说我应该能够通过侦听ThumbPosition,ThumbTrack,First,Last和EndScroll类型的事件来检测滚动框的移动.

但是,当我拖动滚动框时,我只获得LargeDecrement和LargeIncrement类型的事件.

如何访问ThumbPosition,ThumbTrack,First,Last和EndScroll事件?



1> Simon..:
using System.Reflection;
using System.Windows.Forms;

bool addScrollListener(DataGridView dgv)
{
    bool ret = false;

    Type t = dgv.GetType();
    PropertyInfo pi = t.GetProperty("VerticalScrollBar", BindingFlags.Instance | BindingFlags.NonPublic);
    ScrollBar s = null;

    if (pi != null)
        s = pi.GetValue(dgv, null) as ScrollBar;

    if (s != null)
    {
        s.Scroll += new ScrollEventHandler(s_Scroll);
        ret = true;
    }

    return ret;
}

void s_Scroll(object sender, ScrollEventArgs e)
{
    // Hander goes here..
}

正如您所期望的,如果您想要收听水平滚动事件,可以将"VerticalScrollBar"更改为"Horizo​​ntalScrollBar"

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有