【问题标题】:Item spacing in ListView where View=ListListView 中的项目间距,其中 View=List
【发布时间】:2015-12-31 09:37:12
【问题描述】:

我有一个带有复选框的列表视图和视图=列表。项目之间根本没有垂直间距。如何增加垂直间距?

很多答案都在谈论 LVM_SETICONSPACING,但这仅适用于图标视图。 Check Answer here

我也尝试过BetterListview express 作为替代方案,但它提供了如此大的间距,以至于另一个项目可以在它们之间插入,在 Express 模式下,您无法更改间距,仅在 300 美元付费版本中...:(

【问题讨论】:

  • 全神贯注于你的解释问题,这里有很多绒毛。考虑添加代码。
  • 你能贴一张图片说明出了什么问题吗?
  • 抱歉这个毛茸茸的问题,今天很沮丧 :) 用图片更新了问题
  • 也许使用PadRight() 扩展名并为列表中的值提供额外的空格?或者你说的是上面还是下面的间距?
  • @Jacob,是的,我正在尝试更改垂直间距,更新了问题

标签: c# winforms listview


【解决方案1】:

你需要做的就是

  • ImageList 添加到Form
  • 将其ImageSize.Height 设置为您想要的高度
  • ListViewSmallImageList 设置为ImageList

完成。

注意

  • 您确实不需要需要在任何Item 上设置ImageIndex
  • 您确实不需要需要添加任何Images

确保将ImageSize.Width 设置为一个较小的数字,这样CheckBoxItemText 之间就不会出现差距。

所以要设置ListView写:

int itemHeight = 20;
ImageList imgList = new ImageList();
imgList.ImageSize = new Size(1, itemHeight);
listView1.SmallImageList = imgList;

【讨论】:

  • 嘿,TaW,工作出色!幸运的是,这是一个不错且简单的解决方案,谢谢!
  • 但这不再允许我让 View.List 成为单行而不是看起来好像我有两列
【解决方案2】:

如果您使用的是 WPF/XAML,您可以尝试以下方法:

...
<ListView.ItemContainerStyle>
    <Style TargetType="{x:Type ListViewItem}">
        <Setter Property="Margin" Value="2, 2, 2, 2"/>
    </Style>
</ListView.ItemContainerStyle>
...

根据需要更改页边距,就会出现间距。

【讨论】:

  • 很高兴看到 WPF 有所改进,不幸的是我在 Winforms 中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-08
  • 2013-02-26
  • 2017-12-04
  • 1970-01-01
  • 2013-08-01
相关资源
最近更新 更多