2011-01-24 33 views
2

我正在使用Visual Studio在C#.net 3.5中構建Winforms應用程序。它基本上是一個問卷。問題是我希望用戶能夠填寫例如(調查問卷的)9個步驟中的前3個,並且能夠保存並退出應用程序。在Winforms中實現保存並退出應用程序

即使在應用程序關閉/退出之後,仍然保持這樣的狀態,例如檢查單選按鈕&複選框,文本框中的文本,下拉列表/組合框中的選擇等。

因此,用戶還應該能夠在稍後啓動應用程序,並從第3步繼續(或者他們上一次登錄/退出應用程序時執行的任何步驟)。 我想這應該是可能的,因爲它是與webforms應用程序。 任何想法或答案將不勝感激! :)

+2

如果你想保存到磁盤,最簡單的方法就是保存進度的xml文件。如果您想要保存到數據庫,請考慮使用SqlLite。 – tenor 2011-01-24 02:08:16

回答

2

簡而言之:

  1. 創建你的答案數據類。
  2. 將類實例的成員變量綁定到控件。
  3. 在應用程序退出時,序列化您用於XML文件(或二進制或其他)的類實例。
  4. 在下一次加載時,反序列化數據,綁定將完成剩下的工作。

看起來好像你必須在這裏學習很多東西,但它會得到回報。

+0

@Daniel ....看起來很有趣。我不是那麼有經驗的程序員......我更多的是一名數據庫開發人員,但我確實瞭解面向對象編程等。請問您可以詳細介紹一下如何去做吧。 – Andrew 2011-01-24 02:20:02

+0

我正在考慮創建這個數據類(如你所說),並且在點擊下一個按鈕移動到問卷的下一步/階段時,文本框和組合框中的文本值將被保存到字符串變量 - 在後臺 - 在數據類...我怎麼會做相同的複選框和單選按鈕雖然。這就是你所說的''將類實例的成員變量綁定到控件''? – Andrew 2011-01-24 02:24:52

0

正如Daniel指出的那樣,數據綁定可能是一條可行的路。或者,如果它不是太多的字段,您仍然可以在加載和保存時進行手動分配。 (沒有人會拍你使用簡單的代碼進行一個簡單的任務)

下面是數據綁定如何可以解決一個文章: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();

如果你想將其保存爲XML您只需使用XmlFormatter代替。

提示:您可以處理Form_Closing事件以查詢用戶是否要保存/退出。設置「e.Cancel = true;」保持表格的公開。

相關問題