1

这就是我填充列表视图的方式

        With ListView1
        .View = View.Details
        .Columns.Add("Articles", "Articles")
        .Columns.Add("Prix", "Prix")
        .Columns.Add("Quantité", "Quantité")
        .Columns.Add("Total", "Total")
    End With

    'populate "inputs"...
    For Each item As Container In sList
        Dim curEntry As New ListViewItem(New String() {item.sItemName.ToString(), item.sPrice.ToString("C2"), item.iNumber.ToString(), item.sPriceTot.ToString("C2")})
        ListView1.Items.Add(curEntry)
    Next

我尝试获取 selectedRow 的子项

ListView1.SelectedItems(0).SubItems("Articles").Text

但是我得到一个空异常,因为 subItem 是空的,因此调用 text 给我这个错误,但是为什么它是空的,它不应该是空的

我需要知道为什么是 null 以及如何解决这个问题,谢谢

4

1 回答 1

1

您可以依赖索引;示例代码(第一行和第一列):

 Dim val11 As String = ListView1.SelectedItems(0).SubItems(0).Text

或为该行分配 aName并使用此名称来引用它:

 Dim curEntry As New ListViewItem(New String() {item.sItemName.ToString(), item.sPrice.ToString("C2"), item.iNumber.ToString(), item.sPriceTot.ToString("C2")})
 curEntry.Name = "Row 1" 
 ListView1.Items.Add(curEntry)

 Dim val11 As String = ListView1.Items("Row 1").SubItems(0).Text

更新:

如果您通过自己的方法 ( ) 添加它们并为它们中的每一个分配 a ,您也可以通过它来引用SubItems(列) :NameSubItems.AddName

 Dim curEntry As New ListViewItem(New String() {item.sItemName.ToString(), item.sPrice.ToString("C2"), item.iNumber.ToString(), item.sPriceTot.ToString("C2")})
 curEntry.SubItems.Add("otherColumn").Name = "5th column"
 curEntry.Name = "Row 1" 
 ListView1.Items.Add(curEntry)

 Dim val15 As String = ListView1.Items("Row 1").SubItems("5th column").Text
于 2013-09-30T20:49:38.620 回答