大家,早安。
我正在完成一个包含 Windows 字符表(角色样式)的练习。
该字符表有一系列控件,用户可以在其中创建一个字符并保存它(一个字符可以已经创建,当然它保存在一个 txt 文件中)。
我的问题是这样的:
实践的要点之一是能够在用户关闭表单时保存当前的“进度”,即:
- 如果用户关闭应用程序,他们插入和未插入的内容将被保存,当应用程序重新打开时,将显示该数据。
事实是我不知道如何开始做那部分,我需要帮助。
我曾想过让 FormClosing 事件将数据保存在 txt 文件中,但是我不知道如何访问数据。
例如,为了保存一个角色,我创建了一个角色类的对象并调用了相应的函数(我不知道我是否必须这样做,或者我是否必须创建一个单独的类)。
(我附上了pastebin,因为它不会让我将所有代码都放在问题中)
知道如何有效地通过表单本身的所有控件来动态添加它们包含的内容对我有很大帮助。
谢谢您的帮助。
保存配置应该简洁、最佳且易于阅读。此外,还可以利用Windows 窗体控件的DataBindings功能。
在我的示例中,我考虑了一个 JSON 结构,它存储了可以快速反序列化的最少信息:
生成带有与控件相关的属性的 Person 类。
检索和保存信息的程序是:
Persona.json文件中保存的信息为:
并且关于表单的布局很简单(对于这个例子),2个TextBox控件。它们将具有名称:txtName和txtLastName。
对于 JSON 处理,我使用JSON.net。
我个人建议您将进度保存在 XML 文档中。它易于阅读和编写,因为您可以根据“类别”保存它。
最后,如果您想保存表单中的内容,理想的做法是声明一个 FormClosing 事件,并在其中编写与捕获和保存类信息相关的代码(请记住,FormClosing != FormClose)。
XML 的天才之处在于它在检索信息方面的简单性,因此您可以在 Load 事件中声明几行,并且可以轻松检索已保存类的状态。
干杯!