保存动态添加的C#WinForms控件

保存动态添加的C#WinForms控件,c#,.net,winforms,serialization,persistence,C#,.net,Winforms,Serialization,Persistence,如何保存动态添加的WinForms控件 我的应用程序应该能够为以下各项执行此操作:TabPage、GroupBox、RadioButton、以及CheckBox。单选按钮和复选框都对应于选中时将输出的文本块。我理解这个过程将包括和,但我不确定到目前为止我所发现的(如下所列)是否是最合适的方法 创建控件 我链接的主题建议使用从特定控件继承的对象。这意味着我应该根据需要实例化这些对象,并相应地分配动态值。除非有人提出其他建议,否则这似乎是完成这一步骤的最简单方法 存储控件 对于这一部分,我想到: A

如何保存动态添加的WinForms控件

我的应用程序应该能够为以下各项执行此操作:
TabPage
GroupBox
RadioButton
、以及
CheckBox
单选按钮
复选框
都对应于选中时将输出的文本块。我理解这个过程将包括和,但我不确定到目前为止我所发现的(如下所列)是否是最合适的方法

创建控件

我链接的主题建议使用从特定控件继承的对象。这意味着我应该根据需要实例化这些对象,并相应地分配动态值。除非有人提出其他建议,否则这似乎是完成这一步骤的最简单方法

存储控件

对于这一部分,我想到:

A.数据库

我的应用程序使用SQLite保存文本,控件属性也可以通过上述类中的方法保存到其中并从中检索

B.XML

也许是一个配置文件,我将使自己写和读?关于如何处理XML的教程似乎很多,这对我来说是可行的。然而,我不确定在这里存储冗长的文本是否可取,也不确定接下来的内容是否可取

C.序列化

通过研究,我得到了三个结果——JSON、
XmlSerializer
BinaryFormatter
——就C而言,所有这些我都没有经验。这两个方面似乎都有困难

D.用户设置

这似乎是,只是它使用了
StringCollection
或相反


任何人的建议、建议或更正?

为什么要保存控件本身?保存控件表示/显示的内容不是更好吗?控件的行为与任何其他实例/变量一样。在最符合逻辑的场景中,您将把它们存储在内存中(除非需要数千个控件和/或必须在应用程序的不同执行中使用)。winforms应用程序中控件的整个点显示在GUI中,因此您必须将给定控件添加到相应的容器(控件)中。您可以完全依赖这些容器进行存储,也可以考虑进一步的结构(即控件数组)来简化某些操作。由于您的UI是动态的,我建议您使用xml。您可以定义它的自定义版本,有点像HTML或XAML。@varocarbas至少我认为我已经了解了这一部分,幸运的是,lol。谢谢您,我感谢您的时间和投入!无法序列化UI。相反,您需要序列化/存储数据。winforms的主要问题是它不鼓励正确分离这些概念。我建议您抛开陈旧的技术,使用适当的声明式UI和数据绑定,这些都得到现代UI框架(如WPF)的适当支持。