2012-11-01 132 views
1

我有一個使用C++(在VS 2010中開發)的winform應用程序。圖形用戶界面具有特定的文本字段,單選按鈕,複選框等。操作軟件必須填寫這些字段/按鈕/對話框等。在Winforms中創建歷史記錄C++

大致有50種不同的GUI,每種大約有20個字段。

我希望在應用程序關閉並重新啓動後,這些字段中的最新參數會自動填入,因此用戶無需再次重新輸入所有這些值。

實現此目的的最簡單最簡單的方法是什麼?

回答

1

這最好使用MVC模式來解決,其中模型包含填充的數據。該視圖包含它將呈現的方式(例如在Winforms中)。最後,除了執行業務邏輯之外,控制器還需要做一些工作(用於保存狀態)。

我更喜歡使用這個序列化。您可以序列化模型字段並將其讀回(只有必要的字段)。

如果你不喜歡序列化,你可以嘗試寫入INI文件,這將很容易修改。

第三,您可以使用數據庫mdf文件來存儲狀態。

但爲了做到這一切,您需要修改App以使用MVC架構。

+0

任何修改可能! – gpuguy

+0

@gpuguy爲什麼不呢? –

+0

@gpuguy將狀態寫入MDF文件,然後 - 這將是我在這種時候的策略。 –

0

如果你不滿足於快速和骯髒的解決方案,你可以試試這個:

實現一個保存機制:

  1. 迭代到所有的表單控件(遞歸如果有面板或其他 容器)
  2. 如果控制是保存 數據)與他的名字
  3. 店鋪名稱, 值PA一起保存對照文本編輯(或其他類型irs(例如INI文件)

實施加載機制。這是假定有值之間沒有相關性(如果是自動計算字段不保存)

  1. 負載從存儲的值(如果你選擇文件的文件名的形式可以是名字)
  2. 迭代到所有窗體控件,並且如果在加載的數據集中找到它的名稱,則值

一旦實現此方法可用於所有窗體,它將應付添加/刪除控件。但是,如果有業務規則,最好使用MVC方法並序列化模型。

1

您可以使用Windows註冊表與

WindowsFormName(子項) --------->控件名稱(子項) --------------- - > ControlValue(子項)

當窗體關閉您爲每個控制保存在註冊表中

當表單被載入值讀取的值