• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2008 オブジェクトプロパティの保存方法)

VB2008 オブジェクトプロパティの保存方法

このQ&Aのポイント
  • VBの超初心者ですが、フォーム上に複数のチェックボックスやテキストがあり、そのプロパティを保存する方法について教えてください。
  • 質問の内容は以下のように理解しました。VBの初心者であり、フォーム上に複数のチェックボックスやテキストがあり、それらのプロパティ(checkedやtext)を保存してファイルとして扱い、フォーム上で開けるようにしたいということです。具体的な方法について教えてください。
  • 参考ページであるhttp://dobon.net/vb/dotnet/file/xmlserializer.htmlの方法を試してみたが、エラーが発生してしまいました。VBのプロパティを保存する正しい方法について教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

WinFormsを仮定して……。 アプリケーションのアーキテクチャによって,回答が異なります。 a.) ModelがちゃんとFormから分離しているのであれば,Modelを保存/復元すればよい。 b.) Modelが存在せず,Formの情報を保存したいだけであれば,ApplicationSettingsのPropertyBindingを使うのが簡単。 本来であれば,Formが扱う「データ」はそれらがクラスとして分離しているのが望ましいです。 # 例えば,WinFormsではなくWPFやWinRTにUIプラットフォームを変更しても,Modelはほぼ無変更で利用可能になる その場合,Model自身が保存可能な作りにする必要がありますが(Serializable+BinaryFormatterでもDataContractSerializerでもXmlSerializerでもよいですが),その責務はFormではなくModelになります。 ただ,WinFormsでの開発においてModelをちゃんと分離していないことも多く,その場合は後者が簡単な方法になります。 コントロールのプロパティからデータ - (ApplicationSettings)を開き,(PropertyBinding)のボタンを押すと,プロパティの一覧が出てきます。 まずは,「新規」を選択し,保存する名前を指定します。 あとは,勝手にアプリケーションフレームワークが処理してくれます。 VBのアプリケーションフレームワークを利用していない場合は, FormClosedイベントあたりに, My.Settings.Save() の一行を追加する必要がありますが,同じように使えます。

yesman_777
質問者

お礼

詳しい回答ありがとうございます Win Formでやっております。 理解度がまだ低いので(a)は置いといて(b)で試してみました。 確かに状態は保存されましたが、少しイメージが違います。 質問が不十分すぎました、申し訳ないです。 質問に補足しておきますので もしよろしければまたご回答下さい。

yesman_777
質問者

補足

質問に追記できないみたいでした・・・>< 私のイメージとしてはセーブファイルみたいのを出力したいと思っております。 セーブファイル名”設定1”はどれとどれがチェックでテキストには100が入っていて セーブファイル名”設定2”にはすべてにチェックがありテキストに20が入っているみたい なの感じです。 持っている入門書に一つのテキストデータを.txtとして保存、復元(開く)の方法が載っているのでそれを真似ようとは思っているのですが、 複数のテキスト、チェックボックスの状態をどういう形式で保存すればいいのでしょうか。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

標準コンポーネントはシリアライズ化できません。 プロパティを保有するクラスを別個に用意して、 それをシリアライズ/デシリアライズした上で 値を復元させる必要があります。 http://note.chiebukuro.yahoo.co.jp/detail/n23643

yesman_777
質問者

お礼

早速の回答ありがとうございます 正直まだよくわかってはいませんが、 とにかくシリアライズってのが基本なんですかね 参考ページみて勉強させていただきます。

すると、全ての回答が全文表示されます。

関連するQ&A