【发布时间】:2012-01-08 14:06:54
【问题描述】:
我在 Winform c# 中有一个应用程序。我需要将用户输入的值保存在文本框、日期时间选择器等表单控件中。
最好的方法是什么?这些将在再次启动程序时被读取。我还需要将值保存在一个可能只有大约 20 行的数据网格中。
任何帮助/指针将不胜感激。
【问题讨论】:
我在 Winform c# 中有一个应用程序。我需要将用户输入的值保存在文本框、日期时间选择器等表单控件中。
最好的方法是什么?这些将在再次启动程序时被读取。我还需要将值保存在一个可能只有大约 20 行的数据网格中。
任何帮助/指针将不胜感激。
【问题讨论】:
一种方法是创建自己的“状态保存”机制,使用 ini 文件、xml 或一些基于文件的数据库(如 sqlite)。但除非真的需要,否则我觉得这很糟糕。
其他方法是使用 WinForms 引擎来保存控件的值。每个控件都有自己的应用程序设置属性。您可以使用该属性创建新的应用程序设置值并将该值分配给控件的某些属性。这将是一个快速而优雅的解决方案,它可以为每个用户保存设置。
对于没有分配给控件属性的设置,可以使用
Settings.Default.SomeYourProperty
访问该属性,您可以使用
Settings.Default.Save()
保存它。这可能对您的小型数据网格有用(因为您无法将数据网格值自动分配给应用程序设置属性,您希望将它们序列化然后手动保存)。看看here
【讨论】:
一种方法是创建自己的 INI 类并将每个控件的数据保存在文本文件中
here's 一个很好的例子。
【讨论】:
我一直在我的程序中使用 SQLite,它运行良好,而且我对数据有很多控制权。
csharp-sqlite 和 System.Data.SQLite 上有关此主题的一些阅读领域
在使用 SQLite 之前,我使用了Nini,这是一个非常有用的用于保存设置的库,上手非常容易。
如果您想要一个没有额外库的更集成的解决方案,那么您可以看看在您的 Visual Studio 解决方案中使用 settings。我根本没有研究过这种方法,但它可能是你感兴趣的东西。
【讨论】: