我根据传递给表单的一些数据创建了winform并在运行时创建了它的控件。
我不知道将创建控件的数量以及控件的类型
传递的数据只是形成文本,我做了一些条件来检查创建标签或文本框或按钮。
我想保存此控件名称,位置,文本。这个控件可以是文本框,按钮,标签,ComboBox。
我该怎么做?如果XmlSerializer在这种情况下有效?如果是的话怎么用?
任何人都可以给我一些代码或链接吗?
答案 0 :(得分:2)
控件不是为了保存而设计的。所以你不能用控件本身来做这件事,但是如果你编写一个包含控件所需细节的类,那么你可以根据需要保存和使用它们。只需将它们标记为可序列化并将它们提供给流编写器和读取器(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;
}
}
}