在 C# 中,如何将文本框、复选框等的值保存在一个文件中?

Posted

技术标签:

【中文标题】在 C# 中,如何将文本框、复选框等的值保存在一个文件中?【英文标题】:In C#, how can I save the values of textboxes, checkboxes etc... in one file? 【发布时间】:2015-10-20 16:02:06 【问题描述】:

在 C# 中,如何将复选框和单选按钮的检查状态值或文本框和富文本框的文本值保存在单个文件中?如果有可能呢?那么我怎样才能让用户将该文件加载回软件中,以便所有值返回到相同的复选框和保存它们的文本框?

【问题讨论】:

你要找的是序列化; msdn.microsoft.com/en-us/library/7ay27kt9(v=vs.110).aspx @Landon Conway 我无法从您的描述中判断这是否会更好,但在这种情况下,Application Settings 可能是您想要的。 【参考方案1】:

您可以通过以下(基本)方式进行操作: 只需使用 xml 来存储数据,然后从 xml 中读取数据以访问对象数据。

1.) 为数据构建一个类

[Serializable()]
[XmlRoot("MyData", Namespace = "")]
public class MyData

    public MyData()  

    public bool checkBox1State  get; set; 
    public bool checkBox2State  get; set; 
    public string radioGroupSelected  get; set; 
    public string button1Text  get; set; 
    ...

然后构建2个读写xml文件的方法:

public static class MyDataWorker

    public static MyData ReadMyData()
    
        XmlSerializer reader = new XmlSerializer(typeof(MyData));
        System.IO.StreamReader file = new System.IO.StreamReader("MyData.xml");
        MyData data = new MyData();
        data = (MyData)reader.Deserialize(file);
        file.Close();
        return data;
    

    public static void WriteMyData(MyData data)
    
        XmlSerializer writer = new XmlSerializer(typeof(MyData));
        System.IO.StreamWriter file = new System.IO.StreamWriter("MyData.xml");
        writer.Serialize(file, data);
        file.Close();
    

用法:

// Create data object instance
MyData data = new MyData();

// Fill Data from controls
data.checkBox1State = checkBox1.Checked;
...

// Write File to XML
MyDataWorker.WriteMyData(data);

// Read File to MyData object
MyData data = MyDataWorker.ReadMyData();

进一步的步骤可能是,使用参数扩展函数以将特定的 XML 文件读/写到不同的路径。

到此做个小总结。

【讨论】:

以上是关于在 C# 中,如何将文本框、复选框等的值保存在一个文件中?的主要内容,如果未能解决你的问题,请参考以下文章

将控件值(多行文本框、NumericUpDowns、复选框)保存到文件/从文件中加载

c# winforms如何保存用户输入的数据

MVC-如何根据在同一视图文本框中输入的值设置复选框的显示名称

选择下拉框中的值时启用文本框[关闭]

动态数据显示 - WPF - 需要将文本添加到画布 - C#

在启动 C# .NET 时将文本加载到文本框中