【问题标题】:How to make a ListView-Control behave like a ListBox-Control?如何使 ListView-Control 的行为类似于 ListBox-Control?
【发布时间】:2018-07-26 02:04:12
【问题描述】:

因为我想对每个元素进行不同的着色,所以我决定使用 ListView 而不是 ListBox,后者只能同时为所有元素着色。

也就是说,它应该只有一列并在彼此之间插入元素,类似于命令listBox.Items.Insert(0, "Item")

为了实现这一点,我需要更改哪些属性?

我已经尝试将View 属性设置为View.List,但是只要一行中的元素太多,它就会继续将元素插入到我什至没有创建并且也可以的第二行中'我在看Edit Columns时找不到...

【问题讨论】:

  • 仅供参考,您还可以使用所有者绘制的ListBox 为项目设置不同的颜色。

标签: c# winforms listview listbox


【解决方案1】:

您可以将View 设置为Details 并将HeaderStyle 设置为None,然后通过添加一列并将其大小设置为-1 强制该列使用与@987654326 相同的宽度@:

this.listView1.View = View.Details;
this.listView1.HeaderStyle = ColumnHeaderStyle.None;
this.listView1.FullRowSelect = true;
this.listView1.Columns.Add("", -2);
this.listView1.Items.Add("Something");
this.listView1.Items.Add("Something else").BackColor = Color.Red;

【讨论】:

  • 谢谢,效果很好!您是否还知道当字符串对于 ListView-Control 来说太长时要设置哪个属性才能让滚动条出现?目前我只在行尾得到“...”。
  • 如果ListView中有足够的项目,滚动条会自动出现。如果项目的数量是ListView 应该显示滚动条的数量,那么最好在插入所有项目后设置列的宽度。你应该知道this.listView1.Columns[0].Width = -2; 会将列的宽度设置为ListView 的宽度。
猜你喜欢
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
相关资源
最近更新 更多