2017-01-15 3 views
0

Ich habe Kenntnisse über die .FormClosing-Ereignisse, aber ich kann keine Möglichkeit finden, die vom Benutzer vorgenommenen Änderungen auch dann beibehalten zu können, wenn die Anwendungen vollständig geschlossen und erneut geöffnet werden.Wie kann ich die vom Benutzer vorgenommenen Änderungen speichern, selbst wenn die App geschlossen und neu gestartet wird?

Ich versuche, einige String-Werte in den Textfeldern bleiben, in denen der Benutzer sie eingegeben hat. Beispiel:

Public Class PersonalInfo 

Dim Name as String = "" 
Dim LastName as String = "" 

    Sub NameAndLastName() 
     Name = TextBox1.Text 
     LastName = TextBox2.Text 
    End Sub 


    Private Sub Button1_Click(...) Handles Button1.Click 
     NameAndLastName() 
     Me.Close() 
    End Sub 

End Class 

So nach dieser Abschlussveranstaltung, ich brauche, wenn ich die Anwendung wieder öffnen, die Saiten in ihren jeweiligen Textfeldern zu bleiben.

+2

Sie können das nicht tun, da das Laufzeit ist. Schau dir ** my.settings ** an, du kannst dort Dinge für deine Bedürfnisse speichern. Es gibt viele Antworten hier auf SO, die das erklären. Wenn Sie mehr Daten speichern möchten, müssen Sie einen DB verwenden oder in eine Datei schreiben. – Codexer

Antwort

0

Sie müssen sie irgendwo physisch speichern (Datei oder Datenbank) und sie abrufen, wenn Ihre App neu gestartet wird.

Es gibt einfachste Lösung TextBox Werte in txt Datei zu speichern und sie abrufen, während Anwendung starten.

Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing 
     'open new file called saveddata.txt and store each textbox value in new line 
     Dim fl As New System.IO.StreamWriter(Application.StartupPath & "\saveddata.txt", False) 
     fl.WriteLine(TextBox1.Text) 
     fl.WriteLine(TextBox2.Text) 
     fl.Close() 
    End Sub 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     'check if saveddata.txt file exist and, if exist, take values from it and store to textboxes 
     If System.IO.File.Exists(Application.StartupPath & "\saveddata.txt") = True Then 
      Dim fl As New System.IO.StreamReader(Application.StartupPath & "\saveddata.txt") 
      TextBox1.Text = fl.ReadLine 
      TextBox2.Text = fl.ReadLine 
      fl.Close() 
     End If 
    End Sub 

Dies ist die einfachste Lösung. Sie können diese Werte in XML speichern, Datenbank ... Werte können verschlüsselt werden, und so weiter.

+1

Nur ein Vorschlag, wickeln Sie Ihre 'StreamWriter' und' StreamReader' in 'using' Blöcke, dann werden die Objekte geschlossen ** und ** ebenfalls entfernt. Außerdem ** Path.Combine **, anstatt nur Strings für einen Pfad zu verketten. – Codexer

Verwandte Themen