TextBox.Text mit Button speichern

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Michael K..

    TextBox.Text mit Button speichern

    Hallo,
    Ich versuche den Text einer TextBox automatisch zu speichern und zu öffnen.

    Was ich schon versucht hab:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. My.Computer.FileSystem.WriteAllText("textfile1", TextBox1.Text, True)
    3. My.Computer.FileSystem.WriteAllText("textfile2", TextBox2.Text, True)
    4. My.Computer.FileSystem.WriteAllText("textfile3", TextBox3.Text, True)
    5. My.Computer.FileSystem.WriteAllText("textfile4", TextBox4.Text, True)
    6. End Sub
    7. Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click
    8. FileOpen("textfile1", TextBox1.Text, True)
    9. FileOpen("textfile2", TextBox2.Text, True)
    10. FileOpen("textfile3", TextBox3.Text, True)
    11. FileOpen("textfile4", TextBox4.Text, True)
    12. End Sub


    Das funktioniert aber leider nicht beim öffnen (Außer wenn man die File manuell mit den Editor öffnet, Ist aber nicht mein Ziel)
    Ein schöner Fall für MySettings. Die Settings kannst Du an die TextBoxen binden.

    youtube.com/watch?v=CVCSRbfB8r4

    Kurz in diesem Video dargestellt.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Build klappt aber wenn ich das programm öffne und den button klicke kommt:


    Unhandled exception has occurred in your application.
    If you click Continue, the aplication will ignore this error and attempt to contiune. If you click Quit, the aplication will close immediately.


    Could not find file 'C:\User\Home\Desktop\textfile1'.

    Code war:

    VB.NET-Quellcode

    1. Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click
    2. Dim auslesen = My.Computer.FileSystem.ReadAllText("textfile1")
    3. TextBox1.Text = auslesen
    4. End Sub

    fichz schrieb:

    textfile1 ist kein kompletter Dateiname.
    Das funktioniert schon, leider steht dann die Datei ggf. in Nirvanesien, und wenn Du sie editieren willst, suchst Du Dir einen wolf.
    Also: Ammer mit Pfad und natürlich sinniger Extension verwenden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Da Du erfolgreich meinen My.Settings-Vorschlag ignorierst, kannste das Ganze auch in Etwa so lösen.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. WriteTextBoxValues(Me.Controls.OfType(Of TextBox))
    4. End Sub
    5. Private Sub WriteTextBoxValues(ByVal tBoxes As IEnumerable(Of TextBox))
    6. For Each tB As TextBox In tBoxes
    7. Dim path As String = IO.Path.Combine(Application.StartupPath, tB.Name & ".txt")
    8. IO.File.WriteAllText(path, tB.Text)
    9. Next
    10. End Sub
    11. Private Sub ReadTextBoxValues(ByVal tBoxes As IEnumerable(Of TextBox))
    12. For Each tB As TextBox In tBoxes
    13. Dim path As String = IO.Path.Combine(Application.StartupPath, tB.Name & ".txt")
    14. If IO.File.Exists(path) Then
    15. tB.Text = IO.File.ReadAllText(path)
    16. End If
    17. Next
    18. End Sub
    19. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    20. ReadTextBoxValues(Me.Controls.OfType(Of TextBox))
    21. End Sub
    22. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Hab den ersten Vorschlag nicht ignoriert sondern ausprobiert klappt aber nicht.

    Probier grad den Code.

    Edit:
    Wenn ich auf speichern klicke und dann das programm neu starte sind die textboxen leer.

    Hab ich was falsch gemacht?


    VB.NET-Quellcode

    1. Private Sub WriteTextBoxValues(ByVal tBoxes As IEnumerable(Of TextBox))
    2. For Each tB As TextBox In tBoxes
    3. Dim path As String = IO.Path.Combine(Application.StartupPath, tB.Name & "file.txt")
    4. IO.File.WriteAllText(path, tB.Text)
    5. Next
    6. End Sub
    7. Private Sub ReadTextBoxValues(ByVal tBoxes As IEnumerable(Of TextBox))
    8. For Each tB As TextBox In tBoxes
    9. Dim path As String = IO.Path.Combine(Application.StartupPath, tB.Name & "file.txt")
    10. If IO.File.Exists(path) Then
    11. tB.Text = IO.File.ReadAllText(path)
    12. End If
    13. Next
    14. End Sub
    15. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    16. ReadTextBoxValues(Me.Controls.OfType(Of TextBox))
    17. End Sub
    18. Private Sub Button18_Click(sender As Object, e As EventArgs) Handles Button18.Click
    19. End Sub
    20. Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
    21. WriteTextBoxValues(Me.Controls.OfType(Of TextBox))
    22. End Sub


    Habe 4 Textboxen in einer Tabcontroll.

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „user125“ ()

    Setz Haltepunkte in deiner IDE und schau nach ab wann deine Strings leer sind!
    Dann weißte wo der Fehler sein könnte...

    VB.NET-Quellcode

    1. 'lesen
    2. textbox = IO.File.ReadAllText("pfad")
    3. 'speichern
    4. IO.File.WriteAllText("pfad", textbox)


    So muss es funktionieren!

    SpaceyX schrieb:

    Ein schöner Fall für MySettings. Die Settings kannst Du an die TextBoxen binden.

    youtube.com/watch?v=CVCSRbfB8r4

    Kurz in diesem Video dargestellt.

    lol. eigenwerbung :D

    @TE schau dir das lieber an...
    [VB 2010] Settings richtig verwenden + an Settings binden
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!