如何在winforms C#中自动保存并自动加载所有属性?

mon*_*oys 3 c# winforms

如何在关闭时自动保存所有属性winforms并在加载时自动加载所有属性winforms?C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace SControl
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < Controls.Count; i++)
            {
                System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(Controls[i]));
                Stream stream = File.Open("test.xml", FileMode.Create);
                x.Serialize(stream, Controls[i]);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Adr*_*der 6

你的问题有点不清楚,但是

如果您需要保存/加载表单布局,请查看

C#中的Windows窗体用户设置

如果需要保存/加载一个对象/类,请查看

使用序列化将对象加载并保存到XML

编辑:

这将向您展示如何保留表单属性的某些设置.

使用XML保存和还原.NET表单的设置

另请参阅应用程序自动化层 - 使用XML动态生成GUI元素 - 表单和控件

所有这些都将引导您朝着您需要的方向前进.

我认为这里的主要目标是

  • 了解何时保存以及何时加载以及存储/检索这些设置的位置.
  • 您是否按用户存储这些设置?在数据库中?在xml文件中?
  • 接下来,您需要确定每个控件将保存/恢复的属性.简单的位置/大小设置可能不会削减它,因为控件将具有各种复杂性(Button,TextBox,Gridview,ListView)
  • 现在,您需要弄清楚如何迭代窗体上的所有控件.按钮,文本框,面板,控件中的控件(面板中的控件),甚至可能是您的用户控件.这可以使用递归来完成.
  • 现在您需要决定xml文件的结构(如果您选择使用xml).这应该看起来像一个树结构,就像你将表单,它的控件和它们的控件看作树结构一样.