D & 9つのフォームのD文字シートを作成していますが、そのうち6つは保存されます。私はこれらの6つのフォームのそれぞれにすべてのTextBoxを保存する必要があります。私はシリアライゼーションをまだ試していないが、私がまだ何をする必要があるかを明確にする特に良いガイドが見つからなかったので、この時点でかなり混乱している。私は、しかし、ファイルに保存しようとし、ファイルが開かれたときに書き戻しました。これは1つのフォームで動作しますが、コードが書かれているような形で複数のフォームでは動作しないことはほとんど確信しています。複数のフォームを単一ファイルにシリアル化または保存する方法
Dim SaveCharacter As StreamWriter
If txtName.Text = "" Then
MessageBox.Show("In order to save, you must at least enter a name for your character.", "Error: No Name Entered")
Else
SaveCharacterAs.ShowDialog()
System.IO.File.WriteAllText(SaveCharacterAs.FileName, "")
Try
For Each cnt In Me.Controls.OfType(Of TextBox)
SaveCharacter = File.AppendText(SaveCharacterAs.FileName)
SaveCharacter.WriteLine(cnt.Text)
SaveCharacter.Close()
Next
For Each cnt In frmAttributeRoller.Controls.OfType(Of TextBox)
SaveCharacter = File.AppendText(SaveCharacterAs.FileName)
SaveCharacter.WriteLine(cnt.Text)
SaveCharacter.Close()
Next
上記のコードは、ファイルに書き込むためのコードです。私はフォームに入力された文字の名前を持つ.txtファイルにファイルを保存しようと考えていました。保存している各サブフォームに対して、フォームと連結された文字の名前で別の.txtファイルを作成しますそれらのファイルをすべて正しい形式で開くコードを書いてください。しかし、ユーザが間違ったファイルを選択して起動するのは面倒です。シリアル化せずに複数のフォームを1つのファイルに保存するより良い方法はありますか?私の最善の賭けをシリアル化していますか 助けてくれてありがとう!
フォームやコントロールを保存したり、シリアル化したりするのではなく、テキストだけを保存することはありません。クラスオブジェクトのコレクションは、1つのファイルに簡単にシリアル化できます。指向プログラミングはすばらしいことです – Plutonix
また、制御テキストを盲目的にファイルに書き込むことはかなり脆弱であることも知っておくべきです。UIを少し変更すると、以前に保存されたファイルを互換性のないものに変更する可能性があります – Plutonix
したがって、私のフォームを のように1つのファイルに変換します。Me.Controls.OfType(Of textBox)としてDim cnt? –