gpt4 book ai didi

c# - 如何从 DataGridView 接收 "scroll box"类型的滚动事件?

转载 作者:太空狗 更新时间:2023-10-29 20:02:23 24 4
gpt4 key购买 nike

我有一个 DataGridView,我正在监听它的 Scroll 事件。这给了我一个 ScrollEventArgs 对象,其 Type 成员应该告诉我发生的滚动事件的类型。在 the MSDN documentation page它说我应该能够通过监听类型为 ThumbPosition、ThumbTrack、First、Last 和 EndScroll 的事件来检测滚动框的移动。

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

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

最佳答案

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”

关于c# - 如何从 DataGridView 接收 "scroll box"类型的滚动事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/472389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com