C# 如何在c中保存复选框和切换的状态#

C# 如何在c中保存复选框和切换的状态#,c#,winforms,C#,Winforms,如何保存用户在应用程序关闭时所做的设置,例如,如果他取消选中复选框,那么在他启动时也会取消选中该复选框。有几种方法可以做到这一点;您可以将状态保存到文件中或保存到数据库中(例如,SQLite) 根据您的要求判断,您的需求似乎并不广泛,因此文件选项可能最适合您 要保存到文件,您有几个选项-XML,Binary很受欢迎,如果您使用的是兼容的项目,甚至还有app.config 如果您使用的是WPF或WinForms,我将使用app.config或XML方法。事实上,对于您所需要的,app.config

如何保存用户在应用程序关闭时所做的设置,例如,如果他取消选中复选框,那么在他启动时也会取消选中该复选框。

有几种方法可以做到这一点;您可以将状态保存到文件中或保存到数据库中(例如,
SQLite

根据您的要求判断,您的需求似乎并不广泛,因此文件选项可能最适合您

要保存到文件,您有几个选项-
XML
Binary
很受欢迎,如果您使用的是兼容的项目,甚至还有
app.config

如果您使用的是
WPF
WinForms
,我将使用
app.config
XML
方法。事实上,对于您所需要的,
app.config
是完美的

您可以找到WPF
app.config
,以及
WinForms
的好教程,请参见此处


至于将对象读/写到XML文件,我建议读一读
XmlSerialization
,这里有一个非常好的演练-这对您来说是一项更大的工作,而且它还需要比
app.config
方法更多的理解。

要保存它,请创建一个保存数据的事件。在这种情况下,创建一个文件编写器,如下所示:

    const string FILE_NAME = "save.txt";

    using (FileStream fs = new FileStream(FILE_NAME, FileMode.Create))
            {
                // Create the writer for data.
                using (StreamWriter w = new StreamWriter(fs))
                {
                    // Write data to save.txt
                    w.WriteLine(
                        Convert.ToString( MyCheckBox.Enabled )
                        );
                }
            }
string[] data = { Convert.ToString(MyCheckBox.Enabled), (any other values) }
for ( int i = 0; i < data.Length; i++ )
{
    w.WriteLine(i);
}
每次运行事件时,应写入
true
false
以保存.txt文件。
要读取数据,请在Form_Load事件中写入以下内容

    using (FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read))
        {
            using (StreamReader r = new StreamReader(fs))
            {
                this.MyCheckBox.Enabled = Convert.ToBoolean(r.ReadLine());
            }
        }
这应该可以帮你完成工作;)

编辑: 要向文件中添加多个项,请创建字符串数组和for循环

您可以执行以下操作,而不是
w.WriteLine(…)

    const string FILE_NAME = "save.txt";

    using (FileStream fs = new FileStream(FILE_NAME, FileMode.Create))
            {
                // Create the writer for data.
                using (StreamWriter w = new StreamWriter(fs))
                {
                    // Write data to save.txt
                    w.WriteLine(
                        Convert.ToString( MyCheckBox.Enabled )
                        );
                }
            }
string[] data = { Convert.ToString(MyCheckBox.Enabled), (any other values) }
for ( int i = 0; i < data.Length; i++ )
{
    w.WriteLine(i);
}
string[]data={Convert.ToString(MyCheckBox.Enabled),(任何其他值)}
for(int i=0;i
只需将复选框状态序列化为一些xml或二进制文件,并在开始时从该文件中读取信息。@teovankot我对这一点非常陌生,因此您能否提供有关如何执行此操作的参考信息?Windows窗体?网络表单?MVC?只要说
C
和VisualStudio。。。还有,你试过什么?您当前拥有的代码示例将为我们指明最佳帮助的方向。您可以阅读有关状态代码模式的内容。如果您想学习一门新语言,您应该从一些基本的入门指南开始。如果你让别人为你写代码,你就学不会。您可以从Microsoft入门指南开始:非常感谢!!我希望更多的人能提交这样的答案:)我如何在w.writeline中添加多个项目?@TobiasKarlsen检查我的编辑,应该是这样工作的。