使 ListView 在垂直方向上可滚动
Posted
技术标签:
【中文标题】使 ListView 在垂直方向上可滚动【英文标题】:Making ListView scrollable in vertical direction 【发布时间】:2011-01-19 12:35:42 【问题描述】:我正在使用System.Windows.Forms.ListView
和checkboxes = 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 在垂直方向上可滚动的主要内容,如果未能解决你的问题,请参考以下文章
如何使 WPF ListView 项目水平重复,如水平滚动条?