我在使用Win32列表视图时遇到了一些麻烦,我希望有人有一些智慧。当滚动非常快(通过滚轮)时,有时候列表视图会滚动,只会跳回到所选项目以便它在视图中。换句话说,列表撤消您的滚轮滚动,以显示列表顶部/底部的所选项目。我意识到这听起来非常可疑,因为共同的控制已经被全世界殴打致死。
以下是您可以复制的方式:
常规和虚拟列表视图都会发生这种情况。我在Windows 7旗舰版上测试了Win32和C#。
我制作了展示行为的small WinForms app(需要.NET Framework 3.5)。如果您不想从陌生人(我明白)运行任意可执行文件,请创建一个新的WinForms应用程序,在报告模式中删除listview,添加一个列,并在表单加载事件中填充500个增加的整数:
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 500; i++)
{
this.listView1.Items.Add(i.ToString());
}
}
答案 0 :(得分:1)
我注意到了这种行为,它似乎内置于列表视图控件中。我看不出任何有用的功能的原因。我在Sysinternals论坛上创建了一个thread。它可能很有用。
答案 1 :(得分:0)
“我意识到这听起来非常可疑,因为共同的控制已经被全世界殴打致死。”
ListView并没有被打死,但它是在生命支持上。使用不同的控件。
答案 2 :(得分:0)
是自定义列表视图(覆盖绘图?) 顺便说一句,我(从我的理解)面对自定义列表框的相同问题,并在这里找到了一些帮助:
http://aviationxchange.net/wikis/winforms/net-color-listbox.aspx(文件末尾)。
希望这可以提供帮助。
答案 3 :(得分:-1)
我遇到了同样的问题,但我想我找到了原因:我使用的工具可让您配置鼠标按钮(X-Mouse Button Control)。通过禁用它,问题像魔术一样消失了。