无法在第二列列表视图中选择值

时间:2013-02-25 14:58:20

标签: vb.net winforms listview

我有一个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 

有什么想法吗?

1 个答案:

答案 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