1

I need to save things someone adds to a list and open a txt file putting it into a list box. When I open a txt file I only get one line of code and my attempts to save only produce empty txt files. Any help will be greatly appreciated. Here is my code:

Imports System.IO

Public Class Form1
    Public Listed As String

    Private Sub OpenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenToolStripMenuItem.Click
        Dim AllText As String = "", LineOfText As String = ""
        Dim StreamToDisplay As StreamReader
        OpenFileDialog1.Filter = "Text files (*.txt)}|*.txt"
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            Try
                StreamToDisplay = My.Computer.FileSystem.OpenTextFileReader(OpenFileDialog1.FileName)
                Label1.Text = OpenFileDialog1.FileName
                Do Until StreamToDisplay.EndOfStream
                    LineOfText = StreamToDisplay.ReadLine()
                    'AllText = AllText & LineOfText & vbCrLf
                    lstBox.Items.Add(Listed)
                Loop
                lstBox.Items.Add(AllText).ToString()
                StreamToDisplay.Close()
                CloseToolStripMenuItem.Enabled = True
                OpenToolStripMenuItem.Enabled = False
            Catch ex As Exception
                MsgBox("An error occurred." & vbCrLf & ex.Message)
            End Try
        End If
    End Sub

    Private Sub SaveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem.Click
        SaveFileDialog1.Filter = "Text files (*.txt)|*.txt"
            If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
                My.Computer.FileSystem.WriteAllText(SaveFileDialog1.FileName, lstBox.Items.ToString(), False)
            End If
    End Sub

    Private Sub CloseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CloseToolStripMenuItem.Click
        lstBox.Items.Clear()
        Label1.Text = ""
        CloseToolStripMenuItem.Enabled = False
        OpenToolStripMenuItem.Enabled = True
    End Sub

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        Dim Prompt As String = "Enter Items To Add Here"
        Listed = InputBox(Prompt)
        lstBox.Items.Add(Listed).ToString()
    End Sub

    Private Sub btnRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemove.Click
        With lstBox
            .Items.Remove(.SelectedItem)
        End With
    End Sub
End Class

1 Answer 1

2

Here's a simple example that:

  • adds items to a ListBox
  • saves them to a file
  • loads them from a file and populates the ListBox with them

Code:

Imports System.IO

Public Class Form1
    Private Sub ButtonAddItem_Click(sender As Object, e As EventArgs) Handles ButtonAddItem.Click
        ListBox1.Items.Add(DateTime.Now.Ticks)
    End Sub

    Private Sub ButtonSave_Click(sender As Object, e As EventArgs) Handles ButtonSave.Click
        If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
            Using writer = New StreamWriter(SaveFileDialog1.FileName)
                For Each o As Object In ListBox1.Items
                    writer.WriteLine(o)
                Next
            End Using
        End If
    End Sub

    Private Sub ButtonLoad_Click(sender As Object, e As EventArgs) Handles ButtonLoad.Click
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            Dim lines = File.ReadAllLines(OpenFileDialog1.FileName)
            ListBox1.Items.Clear()
            ListBox1.Items.AddRange(lines)
        End If
    End Sub
End Class
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.