ListBox1 wird nicht gespeichert

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von require.

    ListBox1 wird nicht gespeichert

    Ich habe ein kleines Problem mit SaveFileDialog

    undzwar möchte ich eine ListBox1.Text speichern lassen jedoch ist nach dem Speichern kein Inhalt in der TXT

    wenn ich aber mit dem gleichen Code die TextBox1 Speichern möchte klappt das..

    Code:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. For Each Ergebnis In Google.API.Search.GwebSearcher.Search("inurl:" & ComboBox1.Text, TextBox1.Text, Google.API.Language.German)
    4. ListBox1.Items.Add(Ergebnis.Url)
    5. Next
    6. End Sub
    7. Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
    8. Dim FileToSaveAs As String = SaveFileDialog1.FileName
    9. Dim objwriter As New System.IO.StreamWriter(FileToSaveAs)
    10. objwriter.Write(ListBox1.Text)
    11. objwriter.Close()
    12. End Sub
    13. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    14. SaveFileDialog1.ShowDialog()
    15. End Sub
    16. End Class
    Bitte keine VB-Fragen üb... Ach scheiß drauf, mich fragt ja eh keiner.
    Die Text-Property der Listbox liefert nur das im Moment ausgewählte (markierte) Element der Listbox. Wahrscheinlich ist zum Zeitpunkt des Speicherns keines gewählt.

    Gehe lieber alle Elemente der Listbox in einer Schleife durch.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Jo, kann ich.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    4. Using sR As New StreamWriter(My.Computer.FileSystem.SpecialDirectories.Desktop & "\lb.txt")
    5. For i As Integer = 0 To Me.ListBox1.Items.Count - 1
    6. sR.WriteLine(Me.ListBox1.Items(i).ToString())
    7. Next
    8. sR.Close()
    9. End Using
    10. End Sub
    11. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    12. Me.ListBox1.Items.AddRange({"huhu1", "huhu2", "huhu3"})
    13. End Sub
    14. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Du weisst doch, wie es zu verwenden ist, oder? Oder stammt der Code, den Du gepostet hast, nicht von Dir? Wenn Du die gängigen Vorgehensweisen, wie Schleifen usw. nicht kennst, dann empfehle ich dieses Buch:

    microsoft.com/germany/msdn/akt…005dasentwicklerbuch.mspx
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Wo der Code hin muss, steht doch drin. Ich nutz die gleichen Events wie Du. (Button_Click)...

    Ich hab Dir noch ein paar Kommentare in den Code geschrieben.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    4. 'Erzeugt einen StreamWriter, der das Schreiben von Texten ermöglicht.
    5. 'Using, bewirkt, dass die Ressourcen, die vom Streamwriter belegt werden, beim Erreichen von End Using freigegeben werden.
    6. Using sR As New StreamWriter(My.Computer.FileSystem.SpecialDirectories.Desktop & "\lb.txt")
    7. 'Hier werden alle Elemente der Listbox durchgegangen
    8. For i As Integer = 0 To Me.ListBox1.Items.Count - 1
    9. 'Schreibt eine Zeile in den Stream, bzw. in die Textdatei.
    10. sR.WriteLine(Me.ListBox1.Items(i).ToString())
    11. Next
    12. 'Schliesst den Stream, bzw. die Datei.
    13. sR.Close()
    14. End Using
    15. End Sub
    16. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    17. 'Fügt ein paar Elemente der Listbox hinzu.
    18. Me.ListBox1.Items.AddRange({"huhu1", "huhu2", "huhu3"})
    19. End Sub
    20. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Aber bei mir ist das doch ganz anders.. Die Items werden bei Button1 eingetragen und nicht bei Form1_Load und Button1 ist auch nicht der Speicher Button ._.

    Kannst du mir das nicht so einfach in den Code einbauen?

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. For Each Ergebnis In Google.API.Search.GwebSearcher.Search("inurl:" & ComboBox1.Text, TextBox1.Text, Google.API.Language.German)
    4. ListBox1.Items.Add(Ergebnis.Url)
    5. Next
    6. End Sub
    7. Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
    8. Dim FileToSaveAs As String = SaveFileDialog1.FileName
    9. Dim objwriter As New System.IO.StreamWriter(FileToSaveAs)
    10. objwriter.Write(ListBox1.Text)
    11. objwriter.Close()
    12. End Sub
    13. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    14. SaveFileDialog1.ShowDialog()
    15. End Sub
    16. End Class
    Bitte keine VB-Fragen üb... Ach scheiß drauf, mich fragt ja eh keiner.

    require schrieb:

    Kannst du mir das nicht so einfach in den Code einbauen?


    Können schon, aber ich will nicht. Die Namen der Eventhandler sind wohl mehr als selbsterklärend und Du sollst auch etwas lernen daraus. Ich hätte Dir nicht mal den Codeauschnitt geben sollen, wenn es danach geht. Das kriegst schon hin. Es steht alles da, was Du brauchst und Du hast nen Link zu einem tollen Buch.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Der SaveFileDialog ist im Grunde nur dazu da, dass Du Dir, bzw. Deine Nutzer, einen Dateinamen auswählen kannst, verstehst Du. Nicht der SaveFileDialog speichert die Daten sondern ein Stream. Der Dialog gibt Dir nur die Info, wo und unter welchem Namen die Datei erzeugt werden soll.

    Freilich kannst Du den einbauen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o