【问题标题】:Looking for a way to populate listview from String array寻找一种从字符串数组填充列表视图的方法
【发布时间】:2019-03-28 02:16:35
【问题描述】:

我在用我创建的 ListView 填充时遇到问题。所有数据都转到一列而不是行。你能帮我正确填充它吗?

Dim finalas() As String = arrf.ToArray(GetType(System.String))
For Each element As String In finalas
    Dim item As New ListViewItem(element)
    ListView1.Items.Add(item)
Next

【问题讨论】:

  • 您是否设置了断点并查看了 finalas 以查看它的内容。一个简单的一维字符串数组应该按行填充。
  • 您应该仔细检查 arrf.ToArray 是否符合您的预期,而不是将它们全部放在一个元素中。
  • 在尝试此代码后: For i = 0 To 10 MsgBox(finalas(i)) 接下来它会按原样显示每个元素,但重复 3 次(数据库中有 3 条不同的记录)相同记录
  • 设置一个数组。 Dim finalas = {"Mathew", "Mark", "Luke", "John"} 并且代码工作正常。检查您的阵列。

标签: vb.net winforms


【解决方案1】:

我自己找到了解决方案,如果有人需要,给你:

子 readTextFile()

    ' Create new StreamReader instance with Using block.
    Dim path As String = "D:\data.txt"

    Dim st() As String = File.ReadAllLines(path) 'read the file into array of 
    Dim p_1 As String = ""
    Dim p_2 As String = ""
    Dim arrl As Integer = 11


    For Each itm As String In st 'loop the array of string item by item
        Dim Arr() As String = itm.Split(New String() {" "}, StringSplitOptions.RemoveEmptyEntries) 'split the string
        Dim name() As String = itm.Split(New String() {"'"}, StringSplitOptions.RemoveEmptyEntries)

        ' Arr.Skip(1).ToArray -nenuskaito pirmojo
        ' Arr = Arr.Take(Arr.Length - 1).ToArray - nenuskaito paskutinio

        'galutinis array
        p_1 = Arr(1)
        p_2 = Arr(2)

        Dim finarr As New List(Of String)
        finarr.Add(p_1)
        finarr.Add(p_2)
        finarr.Add(name(1))
        For i As Integer = 4 To arrl
            finarr.Add(Arr(((Arr.Length - 1) - arrl) + i))
        Next

        'MsgBox(finarr(0) & finarr(1) & finarr(2) & finarr(3) & finarr(4) & finarr(5) & finarr(6) & finarr(7) & finarr(8) & finarr(9) & finarr(10))

        Dim items As New List(Of ListViewItem)
        Dim lvItem = New ListViewItem(finarr(0))
        For i = 1 To 10
            lvItem.SubItems.Add(finarr(i))
        Next i
        items.Add(lvItem)
            ListView1.Items.AddRange(items.ToArray)
        Next

        Return
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    相关资源
    最近更新 更多