2017-01-15 7 views
0

У меня есть знания о событиях .FormClosing, но я не могу найти способ, чтобы изменения, сделанные пользователем, остались там, даже когда приложения полностью закрылись, и он снова открывается.Как сохранить изменения, внесенные пользователем, даже когда приложение закрывается и перезапускается?

Я пытаюсь оставить некоторые строковые значения в текстовых полях, в которые пользователь ввел их. Пример:

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 

Таким образом, после этого заключительного мероприятия, мне нужно, что, когда я вновь открыть приложение, строки остаются в соответствующих текстовых полях.

+2

Вы не можете это сделать, поскольку это время выполнения. Посмотрите на ** my.settings **, вы можете сохранить там вещи для своих нужд. На SO есть много ответов, которые объясняют это. Если вы сохраняете больше данных, вам нужно использовать БД или записать их в файл. – Codexer

ответ

0

Вы должны сохранить их где-то физически (файл или базу данных) и получить их, когда ваше приложение начнется снова.

Существует Простейшие решения экономии TextBox значения в txt файл и восстановить их при запуске приложения.

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 

Это самое простое решение. Вы можете сохранить эти значения в xml, database ... значения могут быть зашифрованы и так далее.

+1

Просто предложите обернуть ваши 'StreamWriters' и' StreamReaders' в 'using' блоки, затем объекты будут закрыты ** и ** также будут удалены. Также ** Path.Combine ** вместо просто конкатенации строк для пути. – Codexer