更新新项目时如何在 WinForms ListView 控件中自动向下滚动?
Posted
技术标签:
【中文标题】更新新项目时如何在 WinForms ListView 控件中自动向下滚动?【英文标题】:How to auto scroll down in WinForms ListView control when update new item? 【发布时间】:2011-01-02 03:01:12 【问题描述】:更新新项目时如何在ListView控件中自动向下滚动?
我试过了
listView1.Focus();
listView1.Items[listView1.Items.Count - 1].Selected = true;
但这不起作用。
【问题讨论】:
WinForms? WPF?请说明... 【参考方案1】:试试
listView1.Items[listView1.Items.Count - 1].EnsureVisible();
【讨论】:
我可以补充一点,这是一个仅限 Winforms 的解决方案,EnsureVisible 在 WPF ListView 上不存在。之所以这么说,是因为我在谷歌搜索“WPF ListView 自动滚动到底部”时点击了这个页面。 听起来很公平。您是否有指向 WPF 解决方案的链接,以帮助其他人出于同样的原因获得此答案? 问题似乎是由于无法通过属性访问 WPF ListView 上的内置 ScrollViewer,我现在只是在测试一个解决方案,并将其写在我的博客上,链接到跟随。 终于有时间写这篇博文了,这里有一个 WPF 解决方案供参考。 dutton.me.uk/2013/08/13/… @Dutts 具有讽刺意味的是,在 cmets 中提到 W P F 的次数越多,谷歌就越有可能错误地列出这个问题。搜索引擎的上下文感知能力不是很强。【参考方案2】:老式的解决方案:
ListView1.SetFocus;
PostMessage(ListView1.Handle, WM_KEYDOWN, VK_DOWN, 0);
【讨论】:
【参考方案3】:其中 x 是 int,是列表中您要查看的项目的整数
listView1.Items[x].Focus();
listView1.Items[x].Selected = true;
listView1.EnsureVisible(x);
【讨论】:
【参考方案4】:另一种可能的解决方案:
listview1.TopItem = listView1.Items[listView1.Items.Count - 1];
【讨论】:
【参考方案5】:也许
listView1.Items[listView1.Items.Count - 1].Selected = false;
listView1.Items[listView1.Items.Count - 1].Selected = true;
【讨论】:
【参考方案6】:Codesleuth 对列表中最后一项调用 EnsureVisible() 的回答仅在表单 OnShown() 事件期间调用时对我有效。
我尝试在构造函数中执行此操作,我正在填充我的 ListView,但什么也没发生。但是,在 OnShown() 期间执行此操作是一种享受。
希望这会有所帮助。
【讨论】:
以上是关于更新新项目时如何在 WinForms ListView 控件中自动向下滚动?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式更新始终运行并使用 msix 部署的 WinForms 应用程序?