【问题标题】:VB.net update list items from fileVB.net 从文件更新列表项
【发布时间】:2016-06-30 23:56:59
【问题描述】:

我单击一个按钮(使用此代码)将文件“testexam”中的行加载到列表框“lstHere”中。 Testexam 将由另一个程序更新,我想要一个代码将“testexam”的新行复制到“lstHere”的底部。其次,选定的索引应该出现在新列表的第一项。任何帮助将不胜感激。

Private Sub
    Dim MReader As New StreamReader("C:\Users\Sparrow\testexam.txt")
    Dim this1 As String = ""
    Dim thisline(6000) As String


    Dim i As Integer = 0

    Do Until MReader.Peek = -1
        this1= MReader.ReadLine

        thisline(i)= this1

        lstHere.Items.Add(thisline(i))

        'go to the next line.
        i = i + 1

    Loop
End Sub

【问题讨论】:

  • 你为什么不使用File.ReadAllLines("C:\Users\Sparrow\testexam.txt") 用一行得到完整的数组?

标签: vb.net listbox refresh readline


【解决方案1】:

我不知道您是如何尝试实现此功能的,但它适用于不同的按钮。

按钮1:

'Add the selected item to the top
ListBox1.Items.Insert(0, ListBox1.SelectedIndex)

按钮2:

'Delete duplicates
Dim items(ListBox1.Items.Count - 1) As Object
ListBox1.Items.CopyTo(items, 0)
ListBox1.Items.Clear()
ListBox1.Items.AddRange(items.AsEnumerable().Distinct().ToArray())

【讨论】:

  • 谢谢你,noidea 和@Tim Schmelter。我试过但 lstHere.items.Addrange(lines) 但它添加了更新文件中的所有行。所以列表框将有重复的行(来自旧文件和来自更新的重复)。我希望在最后一次读取文件时不存在在此单击时复制的新行。其次,选择的索引应该是这个新行的第一项。谢谢。
  • 新编辑!它工作正常,但您需要防止未选择的项目和东西。顺便说一句,如果适合,请标记为已回答。祝你好运
  • 在我点击这个新按钮插入新的(更新的)行之前,列表框已经有许多列表项(从“testexam”文件中读取)。我想将此新行附加到列表的按钮,因此文件的每个更新行都应该是添加到列表框中的行的一部分。应该排除的是已经复制的行。例如,如果在更新文件之前,我复制了 AB、CD、EF 和 GH 行,并在 60 秒后将新行(IJ、AB、EF、DG)添加到文件中,我需要的这个新代码或按钮应该复制行 IJ、AB、EF 和 DG 并附加到列表中。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
相关资源
最近更新 更多