c# - 如何监听 ListView 中的滚动?

标签 c# winforms listview

ListView 好像不支持Scroll 事件。每当滚动列表时,我都需要调用一个函数;我该怎么做?

最佳答案

为什么需要在列表滚动的时候调用一个函数?

如果您在滚动时更改项目,我建议将 ListView 设置为虚拟。

或者您可以覆盖 ListView 并执行此操作:

public class TestListView : System.Windows.Forms.ListView
{
    private const int WM_HSCROLL = 0x114;
    private const int WM_VSCROLL = 0x115;
    public event EventHandler Scroll;

    protected void OnScroll()
    {

        if (this.Scroll != null)
            this.Scroll(this, EventArgs.Empty);

    }

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        base.WndProc(ref m);
        if (m.Msg == WM_HSCROLL || m.Msg == WM_VSCROLL)
            this.OnScroll();
    }
}

关于c# - 如何监听 ListView 中的滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/372034/

相关文章:

C# WPF - 如何使用 ListView 更改 'Preferences' 窗口的显示网格?

java - ListView 项目中的图像未填充高度

c# - 显示进度条 - 以编程方式

C# 如何在列表框中用图标显示进程

c# - WPF:通过 DataTrigger 设置 ListView View

c# - 更新 WPF DataGrid 中的单行

c# - 使用visio通过c#自动绘制图表 - 无法设置自定义属性

c# - MOSS Filter webpart 不适用于查询字符串中的 & 符号

c# - 在 Web 应用程序中通过 Azure Active Directory 进行身份验证

c# - 如何在C#中显示字符 "\0"