アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBの超初心者です。

早速質問ですが
フォーム上に複数のチェックボックスやテキストがあり、そのプロパティ(checkedやtext)を保存し、
またその保存したファイルをフォーム上で開けることができるようにしたいのですが、
何をどうしたらいいのかわかりません。

方法としては↓に書かれているような方法であっているのでしょうか?
http://dobon.net/vb/dotnet/file/xmlserializer.html

↑に書かれているMainClass.Main()を動かせば"C:\test\sample.xml"ができるのか?
と、やってみたのですがDim serializer・・・のところでエラー
”System.InvalidOperationException はハンドルされませんでした。”
となってしまいます。

そもそもの方法があっているのかどうかもわからず困惑中です。

どなたか、わかる方がいれば、参考ページでも結構ですので教えてください。
宜しく御願いします。

A 回答 (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()
の一行を追加する必要がありますが,同じように使えます。

この回答への補足

質問に追記できないみたいでした・・・><

私のイメージとしてはセーブファイルみたいのを出力したいと思っております。

セーブファイル名”設定1”はどれとどれがチェックでテキストには100が入っていて
セーブファイル名”設定2”にはすべてにチェックがありテキストに20が入っているみたい
なの感じです。

持っている入門書に一つのテキストデータを.txtとして保存、復元(開く)の方法が載っているのでそれを真似ようとは思っているのですが、
複数のテキスト、チェックボックスの状態をどういう形式で保存すればいいのでしょうか。

補足日時:2013/02/18 11:32
    • good
    • 0
この回答へのお礼

詳しい回答ありがとうございます

Win Formでやっております。
理解度がまだ低いので(a)は置いといて(b)で試してみました。
確かに状態は保存されましたが、少しイメージが違います。

質問が不十分すぎました、申し訳ないです。
質問に補足しておきますので もしよろしければまたご回答下さい。

お礼日時:2013/02/18 11:22

標準コンポーネントはシリアライズ化できません。


プロパティを保有するクラスを別個に用意して、
それをシリアライズ/デシリアライズした上で
値を復元させる必要があります。

http://note.chiebukuro.yahoo.co.jp/detail/n23643
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/02/16 02:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!