如何将按钮属性列表保存为xml文件
本文关键字:保存 xml 文件 列表 属性 按钮 | 更新日期: 2023-09-27 18:12:19
我在面板中有100个按钮。这些按钮在点击时改变背景颜色。我已经把这些按钮列了一张表。
public void buttonList()
{
List<Button> panelButtonList = this.panel1.Controls.OfType<Button>().ToList();
}
我想在按下保存按钮时将这100个按钮中的每个按钮的当前背景色写入一个文件。我正在学习xml最适合这个吗?我到哪里去找信息?我似乎找不到很多信息。
是的,您可以将类对象保存为xml或二进制文件格式。要以xml格式存储对象,您需要使用XML Serialization
和Binary Serialization
作为二进制格式化程序。
但是,将整个按钮对象存储在文件中不是一个好主意,您应该只存储所需的一些属性,而不是整个类对象。顺便说一句,有些控件和类不支持XML和二进制格式的序列化。
@Nimesh已经建议以二进制文件格式存储对象属性。看看这个的答案。代码用VB语言编写。你可以使用一些在线代码转换工具将其转换为c#
虽然,二进制序列化比xml序列化快得多。
您可以像下面这样定义XML
<ControlItemConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Instance name="buttonName1">
<_bColor>16777215</_bColor>
<_fColor>-16761747</_fColor>
<Text>Text1</Text>
</Instance>
<Instance name="buttonName2">
<_bColor>16777215</_bColor>
<_fColor>-16761747</_fColor>
<Text>Text2</Text>
</Instance></ControlItemConfig>
您的按钮将通过以下类ControlItemConfig Instance来标识。
创建一个可序列化的类,如下所示
[Serializable]
public class ControlItemConfig
{
public List<Instance> InstanceCollection { get; set; }
class Instance
{
public Instance()
{
_bColor = string.Empty;
_fColor = string.Empty;
Text = string.Empty;
Name =string.Empty;
}
public string _bColor { get; set; }
public string _fColor { get; set; }
public string Text { get; set; }
public string Name { get; set; }
}
}
使用controllitemconfig类将您的按钮数据导出为XML并通过它读取