使 ListView 在垂直方向上可滚动

Posted

技术标签:

【中文标题】使 ListView 在垂直方向上可滚动【英文标题】:Making ListView scrollable in vertical direction 【发布时间】:2011-01-19 12:35:42 【问题描述】:

我正在使用System.Windows.Forms.ListViewcheckboxes = true。 我可以看到,当列表项超出容量时,我会得到一个水平滚动条。我试图找到任何属性来更改滚动条方向。 有什么办法可以让它在垂直方向上滚动?

【问题讨论】:

【参考方案1】:

你需要设置

Listview1.Scrollable = true;
Listview1.View = View.Details

只有在您的 Listview1 中添加了一些列时,这才能正常工作, 所以添加一个虚拟列。喜欢,

ColumnHeader header = new ColumnHeader();
header.Text = "";
header.Name = "col1";
listView1.Columns.Add(header);

【讨论】:

来自建议的编辑(不是我):将 HeaderStyle 设置为 None 以隐藏它!现在你有了一个类似于 Title-View 的 ListView 你应该添加 Listview1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize) 以获得正确的外观 谢谢!这个答案和上面的 2 个 cmets 为我节省了几个小时的反复试验,使 ListView 看起来像一个简单的垂直可滚动 ListBox。【参考方案2】:

我认为强制 ListView 垂直滚动并以“标题”模式查看项目的唯一方法是:

ListView.View = View.Details;
ListView.HeaderStyle = ColumnHeaderStyle.None;

并添加 JUST ONE

【讨论】:

【参考方案3】:

如果集合中有足够的项目(即当前列表视图不能显示的项目),ListView 还应该自动显示垂直滚动条。

【讨论】:

【参考方案4】:

尝试设置此属性

 View=Details

参考:

ListView.View Property

【讨论】:

我已经尝试过所有这些组合。它没有帮助。除了这是配置列表项的视图而不是滚动条方向:(【参考方案5】:

您无法自行更改滚动条方向。

如果您的项目超出列表视图的底部,您将获得一个垂直滚动条,如果您的项目超出列表视图的右侧,您将获得一个水平滚动条。

所以如果你想控制滚动条,你实际上是通过控制内容来做到这一点的。就我个人而言,我只在 Detail 模式下使用 ListViews,但以此为例,您需要确保列标题的大小适合它们都适合水平空间。

【讨论】:

【参考方案6】:

你需要

listView1.View = System.Windows.Forms.View.SmallIcon;

然后您的控件将具有垂直滚动条,其行为与 View.List 几乎相同

【讨论】:

以上是关于使 ListView 在垂直方向上可滚动的主要内容,如果未能解决你的问题,请参考以下文章

停止 ListView 滚动动画

如何使 WPF ListView 项目水平重复,如水平滚动条?

Android ListView 不会在滚动时重绘

Flutter 如何使用 ListView 水平和 GridView 垂直滚动屏幕

如何从 ListView 的右边缘设置垂直滚动条的边距?

组件RecyclerView的应用