序列化和反序列化的大多数示例都是针对文本字符串的。一个简单的例子是如何将带有图像的图片框序列化和反序列化的,这是我真正想要让我开始的。试图完成的是将图片框的属性保存在文件中。这方面的一个例子是下面的图片框序列化将涉及什么过程。
private void creatpic(object sender, EventArgs e)
{
PictureBox pb = new PictureBox();
pb.SizeMode = PictureBoxSizeMode.Normal;
pb.Location = new Point(100, 75);
pb.MouseMove += new MouseEventHandler(pb_MouseMove);
pb.MouseDown += new MouseEventHandler(pb_MouseDown);
pb.MouseUp += new MouseEventHandler(pb_MouseButtonUp);
pb.Image = test.Properties.Resources.track_45;
pb.ContextMenuStrip = contextMenuStrip1;
this.Controls.Add(pb);
}
另一种在序列化旁边保存图片框属性的方法也会有很大帮助吗? 感谢。
答案 0 :(得分:1)
序列化是不可能的(几乎对于WinForms中的每个控件)。定义一个类,用于定义要序列化的属性。不要序列化图形或图像对象,而是将文件名保存为字符串。实例化类并为要为给定控件保存的属性赋值。请务必将该类标记为<Serializable>
,并将该对象用于&#34;序列化&#34;表格控制。
您可能还想为要序列化的每种控件类型创建自定义类。在类中包含一个返回控件类型实例的Shared方法是个好主意。提供另一个通过将控件作为参数传递来创建此数据类型实例的共享方法也很好。
来自MSDN
的答案