【发布时间】:2020-12-16 09:42:37
【问题描述】:
我有一个带有一些文本框的应用程序。我的用户填充文本框并运行一些方法,当他们关闭应用程序数据时(通常)会丢失。
我想保留几个文本框的值和一些局部变量。使用database 不值得,而且简单的.txt 文件不够干净,有没有其他简单而简短的方法可以在应用程序运行之间存储少量数据?
我不确定,但听说过一些关于资源文件的消息,它们适合这种情况吗?
【问题讨论】:
我有一个带有一些文本框的应用程序。我的用户填充文本框并运行一些方法,当他们关闭应用程序数据时(通常)会丢失。
我想保留几个文本框的值和一些局部变量。使用database 不值得,而且简单的.txt 文件不够干净,有没有其他简单而简短的方法可以在应用程序运行之间存储少量数据?
我不确定,但听说过一些关于资源文件的消息,它们适合这种情况吗?
【问题讨论】:
最简单的方法是将你的文本框绑定到application settings:
FormClosed事件保存应用设置保存设置:
private void Form_FormClosed(object sender, FormClosedEventArgs e)
{
Settings.Default.Save();
}
下次用户启动您的应用程序时,将从用户特定文件加载设置,并且文本框将填充与用户上次关闭应用程序之前相同的数据。
您还可以在应用程序设置中存储局部变量,但您必须手动为其添加设置,并在应用程序启动时手动读取该设置:
var x = Settings.Default.MyCounter
Settings.Default.MyCounter = x 就在调用Settings.Default.Save() 之前
【讨论】:
Data 是一个属性类别。如果您正在寻找属性名称,那么您需要(ApplicationSettings) 属性
有几个选项,但对于大多数选项,您将在某处放置一个文件,无论是文本文件、资源/配置还是二进制文件。
使用设置是一种选择:http://www.codeproject.com/Articles/17659/How-To-Use-the-Settings-Class-in-C
也可以走序列化路线:http://msdn.microsoft.com/en-us/library/vstudio/et91as27.aspx
或者您也可以查看 MongoDB 等 noSQL 数据库:http://www.mongodb.org/
【讨论】:
您有以下选择
一个本地 Microsoft Access 数据库,可以存储小空间。
使用字典,序列化/反序列化到文件系统。
Windows 注册表。
【讨论】:
假设您使用的是 Windows(如标签所示),您是否考虑过注册表?
【讨论】: