2017-01-15 5 views
0

私は.FormClosingイベントについて知っていますが、アプリケーションが完全に閉じられていても、ユーザーが行った変更をそこにとどめる方法を見つけることはできません。アプリを閉じて再起動しても、ユーザーが行った変更を保存するにはどうすればよいですか?

私はいくつかの文字列の値をユーザーが入力したテキストボックスに残すようにしようとしています。例:

この終了イベントの後、私はアプリケーションを再オープンするときに、その文字列をそれぞれのテキストボックスに残す必要があります。

+2

これは実行時には実行できません。 ** my.settings **をご覧ください。必要なものを保存することができます。これを説明する多くの答えがここにあります。より多くのデータを保存する場合は、DBを使用するか、ファイルに書き込む必要があります。 – Codexer

答えて

0

物理的に(ファイルまたはデータベース)どこかに保存して、アプリが再び起動したときにそれらを取得する必要があります。

あり最も簡単なtxtファイルにTextBox値を保存し、アプリケーションを起動しながら、それらを取得ソリューション。

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、データベース...に格納することができます。値は暗号化することができます。

+1

'StreamWriters'と' StreamReaders'を 'using'ブロックで囲むだけで、オブジェクトは閉じることができます。**と**は同様に処理されます。 ** Path.Combine **の代わりにパスの文字列を連結するだけです。 – Codexer

関連する問題