VBの超初心者です。
早速質問ですが
フォーム上に複数のチェックボックスやテキストがあり、そのプロパティ(checkedやtext)を保存し、
またその保存したファイルをフォーム上で開けることができるようにしたいのですが、
何をどうしたらいいのかわかりません。
方法としては↓に書かれているような方法であっているのでしょうか?
http://dobon.net/vb/dotnet/file/xmlserializer.html
↑に書かれているMainClass.Main()を動かせば"C:\test\sample.xml"ができるのか?
と、やってみたのですがDim serializer・・・のところでエラー
”System.InvalidOperationException はハンドルされませんでした。”
となってしまいます。
そもそもの方法があっているのかどうかもわからず困惑中です。
どなたか、わかる方がいれば、参考ページでも結構ですので教えてください。
宜しく御願いします。
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()
の一行を追加する必要がありますが,同じように使えます。
この回答への補足
質問に追記できないみたいでした・・・><
私のイメージとしてはセーブファイルみたいのを出力したいと思っております。
セーブファイル名”設定1”はどれとどれがチェックでテキストには100が入っていて
セーブファイル名”設定2”にはすべてにチェックがありテキストに20が入っているみたい
なの感じです。
持っている入門書に一つのテキストデータを.txtとして保存、復元(開く)の方法が載っているのでそれを真似ようとは思っているのですが、
複数のテキスト、チェックボックスの状態をどういう形式で保存すればいいのでしょうか。
詳しい回答ありがとうございます
Win Formでやっております。
理解度がまだ低いので(a)は置いといて(b)で試してみました。
確かに状態は保存されましたが、少しイメージが違います。
質問が不十分すぎました、申し訳ないです。
質問に補足しておきますので もしよろしければまたご回答下さい。
No.1
- 回答日時:
標準コンポーネントはシリアライズ化できません。
プロパティを保有するクラスを別個に用意して、
それをシリアライズ/デシリアライズした上で
値を復元させる必要があります。
http://note.chiebukuro.yahoo.co.jp/detail/n23643
早速の回答ありがとうございます
正直まだよくわかってはいませんが、
とにかくシリアライズってのが基本なんですかね
参考ページみて勉強させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- その他(パソコン・周辺機器) 同じファイル名 上書きしないフリーソフトなどあったら教えて下さい。 仕事で大量の写真などを扱っており 3 2023/05/18 06:43
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Word(ワード) officeの自動保存について教えてください 2 2023/06/18 09:11
- グループウェア 一太郎がイントラで開けません。対処方法を知りたいです。 3 2023/04/04 13:30
- Excel(エクセル) EXCELマクロでandroidタブレットから取りんだJPEGファイルをうまくセルに貼り付けられない 2 2022/07/31 15:03
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- システム 外付けHDDの初期化について 4 2023/03/05 20:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】自動的にバックア...
-
Excel VBAでほかのアプリケーシ...
-
MPLABのソースファイルが保存で...
-
読み取り専用ファイルを上書き...
-
タイトルバーやメニューバーの...
-
VB.NETでEXCELファイルを開き、...
-
VBSでWordの文字色変え
-
IEのダウンロードファイル保存...
-
Corel Digital Studioの動画をS...
-
onedriveで同期解除をしたら、...
-
論文に載せるグラフを作成したい
-
Windowsファイルエクスプローラ...
-
壁紙・スクリーンセーバーの削...
-
共有しているファイルを削除し...
-
USBデータの消失
-
ファイルの保存をOnedriveのク...
-
ごみ箱から元に戻したファイル...
-
大量のファイルの中から壊れた...
-
USBメモリにフォルダをコピーす...
-
ls であるファイル以外を表示し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
読み取り専用ファイルを上書き...
-
Excel VBAでほかのアプリケーシ...
-
Corel Digital Studioの動画をS...
-
コマンドプロンプトでデスクト...
-
Excel VBAで作成したマクロをxl...
-
エクセルで「名前を付けて保存...
-
ExcelVBAでデスクトップのPATH...
-
VBA メモ帳の上書き保存がしたい
-
VBAで、強制保存してブックを閉...
-
irvineを利用してVBAからダウン...
-
VBScriptでのSaveAsについて
-
webページの特定の部分だけ消し...
-
VBScriptで日本語が変です
-
Pivot table で集計されたデー...
-
AccessVBAでレポートをPDFで出力
-
vbaでIEの名前を付けて保存(A)...
-
エクセル:マクロ:保存時に連...
-
ファイルのダウンロード保存先...
-
htmlから取り込んだ を消...
-
印刷と保存の仕方をVBAマクロの...
おすすめ情報