将表单元素属性保存到XML(保存控件状态)

时间:2009-09-18 17:26:36

标签: c# xml forms save state

我一直在一些项目中使用xml库来保存我的设置,它的工作原理是这样的:

saveSettings(Control control, XmlConfig config, string controlName)

然后它会搜索那个内部的所有控件(递归地),每次找到一个新的控件等时调用它自己,并将所有信息保存到xml文件中,如:

                         

然后加载它们。

上次我使用它是在Framework 2中,最近我再次需要它,并重新使用它,它像正常一样保存XML文件,但似乎在加载xml文件后似乎没有更新表单,我似乎无法找到原因,所有代码似乎都是正确的。

任何人都知道一个不错的替代品? (默认的一个,应用程序设置,使用一种明显糟糕的方法,指定一个控件来保存的方法更简单,适用于所有地方)

提前致谢=)

1 个答案:

答案 0 :(得分:0)

嗯,我这样做但是比你描述的更明确。我把一组接口和类放在一起,以支持这个问题。它们的用法如下:

readonly ObjectSerializer _serializer;
public MyForm()
{
    _serializer = new ObjectSerializer(this,
        "Top", "Left", "Height", "Width",
        "_splitter.SplitterDistance");
    _serializer.ContinueOnError = true;
}

private void Form_Load(object sender, EventArgs e)
{
    _serializer.Deserialize(new CSharpTest.Net.Serialization.StorageClasses.UserSettingStorage());
}

void Form_Closing(object sender, FormClosingEventArgs e)
{
    _serializer.Serialize(new CSharpTest.Net.Serialization.StorageClasses.UserSettingStorage());
}

正在使用的库“CSharpTest.Net.Library.dll”位于:

http://code.google.com/p/csharptest-net