2011-01-24 8 views
2

私はVisual Studioを使用してC#.net 3.5でWinformsアプリケーションを構築しています。その本質的なアンケート。私は、ユーザーに、例えば、アンケートの9つのステップのうち最初の3つを実行し、アプリを保存して終了することができます。Winforms AppでSAVEとQUITを実装する

ウィークフォースコントロールの状態(例えば、チェックされたラジオボタン&チェックボックス、テキストボックスのテキスト、ドロップダウンリスト/コンボボックスの選択など)を保存することはアプリの終了後もそのままです。

したがって、ユーザーは後でアプリを起動して、ステップ3(またはアプリがログアウト/アプリを最後に終了したときの手順)から続行することもできます。 これはwebformsアプリでこれが可能なはずだと思います。 どのようなアイデアや回答があれば幸いです! :)要するに

+2

ディスクに保存する場合、進捗状況を保存するxmlファイルが最も簡単な方法です。代わりにDBに保存する場合は、SqlLiteを検討してください。 – tenor

答えて

2

  1. は、あなたの答えのためのデータクラスを作成します。
  2. コントロールへのクラスインスタンスのメンバ変数をバインドします。
  3. アプリケーション終了時に、XMLファイル(またはバイナリなど)に使用したクラスインスタンスをシリアル化します。
  4. 次回のロード時に、データのデシリアライズを行い、残りの処理がバインドされます。

ここではたくさんのことを学ぶ必要があるかもしれませんが、それはうまくいくでしょう。

+0

@ダニエルはおもしろそうです。私は経験豊富なプログラマーではありません...私はDB開発者の方が多いですが、OOプログラミングなどを理解しています。 – Andrew

+0

私はこのデータクラスを作成することを考えています(あなたが言ったように)、次のボタンをクリックしてアンケートの次のステップ/ステージに移動すると、テキストボックスとコンボボックスのテキスト値が文字列変数に保存されます - バックグラウンドで - データクラスで...どのようにチェックボックスとラジオボタンでも同じことをするでしょう。それはコントロールのクラスインスタンスのメンバ変数をバインドすることを意味しますか? – Andrew

+0

@ダニエル...私は上記のあなたの提案のステップ3と4についてどうやって行くのですか? – Andrew

0

ダニエル氏はデータバインディングの方がいいと指摘しています。また、あまりにも多くのフィールドではない場合は、ロード時および保存時に手動で割り当てることができます。 http://www.15seconds.com/issue/040614.htm
そして、ここでデータバインディングに詳細に入る素晴らしい記事です:http://www.akadia.com/services/dotnet_databinding.html

ここ

は、データバインディングを解決することができる方法についての一品です(誰もが簡単なタスクのための簡単なコードを使用してのためにあなたを撃つません)シリアライゼーションは、オブジェクトを文字列/バイト - ストレーム/その他のものにする方法です。たとえば、オブジェクトをXMLファイルとして保存し、後で読み込むことができます。それは非常に使いやすいです。あなたはここでそれについての詳細を読むことができます:シリアライズのhttp://www.switchonthecode.com/tutorials/csharp-tutorial-serialize-objects-to-a-file

サンプル:

Stream stream = File.Open("filename.bin", FileMode.Create); 
BinaryFormatter bFormatter = new BinaryFormatter(); 
bFormatter.Serialize(stream, objectToSerialize); 
stream.Close();

をあなたは単に代わりXmlFormatter使用XMLとして保存したい場合。

ヒント:Form_Closingイベントを処理して、保存/終了するかどうかをユーザーに問い合わせることができます。 "e.Cancel = true;"を設定します。フォームを開いたままにします。

+0

@all ...私の質問に対するあなたの応答は非常に便利でした。私のWindowsフォームアプリケーションは完全に(シリアル化の面では...私はXMLシリアル化を選択しました)動作します。特にTEDDハンセンに感謝します。 – Andrew

関連する問題