Listview subItem null

时间:2013-09-30 20:26:38

标签: .net vb.net

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

        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的subItem
ListView1.SelectedItems(0).SubItems("Articles").Text

但是我得到一个null异常,因为subItem为null因为调用文本给我这个错误,但为什么它为null它不应该为null

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

1 个答案:

答案 0 :(得分:1)

你可以依赖指数;示例代码(第一行和第一列):

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

或者为行指定Name并使用此名称来引用它:

 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

更新:

如果您通过自己的方法SubItems添加Name({1}},则可以引用SubItems.Add(列),并为每个Name分配 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

{{1}}