简体   繁体   中英

Using open file dialog and save file dialog with a list box in VB

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM