2012-11-01 23 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(子项)

当窗体关闭您为每个控制保存在注册表中

当表单被载入值读取的值