使用打开文件对话框并使用VB中的列表框保存文件对话框

时间:2014-04-26 04:09:42

标签: vb.net

我需要保存某人添加到列表中的内容并打开将其放入列表框的txt文件。当我打开一个txt文件时,我只得到一行代码而我的保存尝试只产生空的txt文件。任何帮助将不胜感激。这是我的代码:

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 个答案:

答案 0 :(得分:1)

以下是一个简单的例子:

  • 将商品添加到ListBox
  • 将它们保存到文件
  • 从文件中加载它们并使用它们填充ListBox

代码:

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