使ListView在垂直方向上可以滚动

40

我正在使用带有 checkboxes = trueSystem.Windows.Forms.ListView。 我发现当列表项超过显示区域后会出现水平滚动条。我尝试查找任何更改滚动条方向的属性,是否有办法使其在垂直方向上滚动?

6个回答

62
您需要设置。
Listview1.Scrollable = true;
Listview1.View = View.Details

如果您已经在Listview1中添加了一些列,那么这种方法才能正常工作, 所以请添加一个虚拟列。例如,

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

11
将HeaderStyle设置为None可以隐藏它!现在你有一个类似于标题视图的ListView。 - Marc Gravell
8
为了使外观更加正常,您应该添加Listview1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)。 - eddy white
谢谢!这个答案和上面的两条评论让我省去了几个小时的试错,以使ListView看起来像一个简单的垂直可滚动的ListBox。 - Fabien Teulieres

23

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

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

并且只添加一列


0

我已经尝试了所有这些组合,但没有帮助。此外,这是为了配置列表项的视图而不是滚动条方向:( - Ravisha

0

如果集合中的项数量超过了 ListView 当前能够显示的数量,ListView 应该自动显示垂直滚动条。


0

你无法直接更改滚动条的方向。

如果列表视图中的项目超出底部,则会出现垂直滚动条;如果项目超出列表视图的右侧,则会出现水平滚动条。

因此,如果您想要控制滚动条,实际上是通过控制内容来实现的。个人而言,我只在详细模式下使用列表视图,但以此为例,您需要确保列标题的大小适合水平空间。


-1

你需要:

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

然后你的控件将具有垂直滚动条和与列表视图相似的行为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接