保存在运行时创建的c# winform控件
本文关键字:winform 控件 创建 存在 运行时 保存 | 更新日期: 2023-09-27 18:12:57
我创建了winform及其控件,该控件是基于传递给表单的一些数据在运行时创建的。
我不知道要创建的控件的数量,也不知道控件的类型。
数据传递形成只是文本,我做了一些条件来检查创建标签或文本框或按钮。
我想保存这个控件的名称,位置,文本。这个控件可以是文本框,按钮,标签,组合框。
我怎么才能做到呢?如果XmlSerializer可以在这种情况下有效?如果有,如何使用?
谁能给我一点代码或链接?
控件不是为保存而设计的。你不能对控件本身这样做,但如果你写一个类,包含你需要的任何控件的细节,那么你可以保存和使用它们,无论你想要什么。只需将它们标记为可序列化的,并将它们提供给流写入器和读取器(https://msdn.microsoft.com/en-gb/library/ms233843.aspx)
[Serializable]
class ControlFactory
{
enum ControlType
{
TextBox
}
ControlType Type {get;set;}
Point Position {get;set;}
//etc.
Control Create()
{
switch(Type)
{
case ControlType.TextBox:
TextBox txt = new Textbox();
// apply settings
return txt;
}
}
}