【问题标题】:Save winform controls value c#保存winform控件值c#
【发布时间】:2012-01-08 14:06:54
【问题描述】:

我在 Winform c# 中有一个应用程序。我需要将用户输入的值保存在文本框、日期时间选择器等表单控件中。

最好的方法是什么?这些将在再次启动程序时被读取。我还需要将值保存在一个可能只有大约 20 行的数据网格中。

任何帮助/指针将不胜感激。

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    一种方法是创建自己的“状态保存”机制,使用 ini 文件、xml 或一些基于文件的数据库(如 sqlite)。但除非真的需要,否则我觉得这很糟糕。

    其他方法是使用 WinForms 引擎来保存控件的值。每个控件都有自己的应用程序设置属性。您可以使用该属性创建新的应用程序设置值并将该值分配给控件的某些属性。这将是一个快速而优雅的解决方案,它可以为每个用户保存设置。

    对于没有分配给控件属性的设置,可以使用

    Settings.Default.SomeYourProperty
    

    访问该属性,您可以使用

    Settings.Default.Save()
    

    保存它。这可能对您的小型数据网格有用(因为您无法将数据网格值自动分配给应用程序设置属性,您希望将它们序列化然后手动保存)。看看here

    【讨论】:

      【解决方案2】:

      您应该使用Properties.Setting,它专为您的用例而设计。可以在here 找到涵盖所有常用用例(以及更多)的非常好的解释/教程。

      MSDN 也有一个article

      【讨论】:

        【解决方案3】:

        一种方法是创建自己的 INI 类并将每个控件的数据保存在文本文件中

        here's 一个很好的例子。

        【讨论】:

          【解决方案4】:

          我一直在我的程序中使用 SQLite,它运行良好,而且我对数据有很多控制权。

          csharp-sqliteSystem.Data.SQLite 上有关此主题的一些阅读领域

          在使用 SQLite 之前,我使用了Nini,这是一个非常有用的用于保存设置的库,上手非常容易。

          如果您想要一个没有额外库的更集成的解决方案,那么您可以看看在您的 Visual Studio 解决方案中使用 settings。我根本没有研究过这种方法,但它可能是你感兴趣的东西。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-09-01
            • 2013-08-28
            • 1970-01-01
            • 2011-11-15
            • 2018-02-24
            • 2010-09-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多