我正在编写一个简单的程序来读写.txt文件。我有程序要写入并保存.txt文件但是我在读取.txt文件时遇到了一些麻烦。这是我到目前为止所得到的:
Using openTxt As New OpenFileDialog()
If openTxt.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim displayForm As New Form
Dim textReader As New System.IO.StreamReader(openTxt.FileName)
displayForm.ListBox1.Text = textReader.ReadToEnd
textReader.Close()
displayForm.Show()
Else
MessageBox.Show("Not a text file")
End If
End Using
我想要发生的是当文本被读取时,它会填充在另一个表单(displayForm)中的列表框中。我已尝试将文本显示在同一表单上的列表框中,以查看是否可能已更改任何内容但仍保持空白。我可以确认我只用.txt文件测试它,因为我在这个阶段没有进行错误检查。非常感谢您的帮助!
答案 0 :(得分:4)
ListBox
不是用于显示文本,而是用于显示列表(顾名思义)。如果要显示文本,请使用TextBox
。由于文件可能包含多行,因此您可以将.Multiline
属性设置为True
,以便TextBox
正确显示该文件。
此外,在处理using statement
Streams
Dim content As String = ""
Using textReader As New System.IO.StreamReader(openTxt.FileName)
content = textReader.ReadToEnd
End Using
displayForm.ListBox1.Text = content
或只是使用System.IO.File.ReadAllText("path to file here")
命令。
答案 1 :(得分:0)
是否要逐行读取文件并填充列表框控件?
如果是这种情况,请尝试此功能
Function ReadFile(ByVal Filename As String) As String()
Dim Sl As New List(Of String)
Using Sr As New StreamReader(Filename)
While Sr.Peek >= 0
Sl.Add(Sr.ReadLine())
End While
End Using
Return Sl.ToArray
End Function
并像这样使用:
For Each Line As String In ReadFile("FILENAME.txt")
ListBox1.Items.Add(Line)
Next