gpt4 book ai didi

c# - 拖动时 TreeView 自动滚动

转载 作者:太空狗 更新时间:2023-10-29 18:02:06 27 4
gpt4 key购买 nike

Winforms TreeView,我想在用户拖动和项目时向上/向下滚动。

最佳答案

与上面的几乎相同,但没有那个“顶级”错误,并且在更大的项目中使用起来更简单一些。

将此类添加到您的项目中:

public static class NativeMethods
{
[DllImport("user32.dll", CharSet = CharSet.Auto)]
internal static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

public static void Scroll(this Control control)
{
var pt = control.PointToClient(Cursor.Position);

if ((pt.Y + 20) > control.Height)
{
// scroll down
SendMessage(control.Handle, 277, (IntPtr) 1, (IntPtr) 0);
}
else if (pt.Y < 20)
{
// scroll up
SendMessage(control.Handle, 277, (IntPtr) 0, (IntPtr) 0);
}
}
}

然后只需订阅 TreeView (或您希望在拖/放时启用滚动的任何其他控件/自定义控件)的 DragOver 事件并调用 Scroll() 方法。

    private void treeView_DragOver(object sender, DragEventArgs e)
{
treeView.Scroll();
}

关于c# - 拖动时 TreeView 自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6034942/

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