我有一个listview,它以这种方式动态填充两列之间的值:
column 1 | column 2
value1 | value 2
value3 | value 4
但是我无法在第2列中选择任何值 - listview的属性是否阻止我这样做,还是我填充这些列的方式?这是填充列的代码:
For k = 0 To UBound(tempValues)
Dim itm As New ListViewItem(tempValues(k))
If k Mod 2 = 0 Then
listview1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)
itm.SubItems.Add(tempValues(k + 1))
listview1.Items.Add(itm)
End If
listview1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)
Next
有什么想法吗?
答案 0 :(得分:1)
我能看到的最接近的是设置listView1.FullRowSelect = true
(我假设你有listView1.View = View.Details
?)
但是这只会给你全行选择 - 记住第二列代表listview项目的第一个子项目。
如果你想要多列数据,最好设置listView1.View = View.Details = View.List
,这会导致它在垂直空间不足时将一个项目列表包装到多个列上。
修改强>
如果您使用listView1.View = View.List
,则您的人口需要更改为以下内容:
For k = 0 To UBound(tempValues)
listview1.Items.Add(new ListViewItem(tempValues(k))
Next
listview1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)
但这意味着你最终得到这样的列表:
Value 1
Value 2
Value 3
Value 4
如果ListView太短而无法显示,所有这些,它将包装它们:
Value 1 Value 4
Value 2
Value 3