0

我有一个列表视图,它以这种方式在两列之间动态填充值:

column 1 | column 2
value1 | value 2
value3 | value 4

但是我无法在第 2 列中选择任何值 - 是否存在列表视图的属性阻止我执行此操作,或者是我填充这些列的方式?这是我填充列的代码:

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 

有任何想法吗?

4

1 回答 1

2

我能看到的最接近的是设置listView1.FullRowSelect = true(我假设你有listView1.View = View.Details?)

然而,这只会给你全行选择——记住第二列代表列表视图项目的第一个子项目。

如果您想要多列数据,最好设置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
于 2013-02-25T15:07:27.640 回答