Сохранение элементов управления flowlayoutpanel (т. е. меток) при закрытии пользователем приложения
Мне нужно сохранить расположение меток, когда пользователь закрывается, я думаю, что мне нужно сделать его сериализуемым или сохранить что-то в XML-файл, но не могу понять, как это сделать.
метки могут быть перемещены из одной FlowLayoutPanel в другую с помощью оператора if, а затем методов add/remove.
using System; using System.Windows.Forms; using System.Drawing; using System.Data; using System.Linq; using System.Xml; using System.IO; using System.Xml.Serialization; using System.Data.SqlClient; namespace test999 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int shrewsbutyTotal; int donningtonTotal; int margin = 10; Point move; private void Form1_Load(object sender, EventArgs e) { labelBackgroundColour(); flowLayoutPanel1.BorderStyle = BorderStyle.FixedSingle; flowLayoutPanel2.BorderStyle = BorderStyle.FixedSingle; makeMoveable(); updateTotals(); } void updateTotals() { shrewsbutyTotal = flowLayoutPanel1.Controls.Count; donningtonTotal = flowLayoutPanel2.Controls.Count; lbl_total_shrewsbury.Text = "Shrewsbury Vehicle Count: " + shrewsbutyTotal.ToString(); lbl_total_donnington.Text = "Donnington Vehicle Count: " + donningtonTotal.ToString(); } void labelMouseDown(object sender, MouseEventArgs e) { Disableflowsnap(); flowLayoutPanel1.Cursor = Cursors.Hand; move = e.Location; } void labelMouseMove(object sender, MouseEventArgs e) { Control o = (Control)sender; if (e.Button == MouseButtons.Left) { o.Left += e.X - move.X; o.Top += e.Y - move.Y; } } void lableMouseUp(object sender, MouseEventArgs e) { flowLayoutPanel1.Cursor = Cursors.Default; foreach (Label l in flowLayoutPanel1.Controls) { if ((flowLayoutPanel1.Location.X + l.Right) > flowLayoutPanel1.Right) { flowLayoutPanel1.Controls.Remove(l); flowLayoutPanel2.Controls.Add(l); updateTotals(); } } foreach (Label l in flowLayoutPanel2.Controls) { if ((flowLayoutPanel2.Location.X + l.Left < flowLayoutPanel2.Left)) { flowLayoutPanel2.Controls.Remove(l); flowLayoutPanel1.Controls.Add(l); updateTotals(); } } EnableFlowSnap(); } void labelBackgroundColour() { foreach (Label l in flowLayoutPanel1.Controls) { l.BackColor = Color.Yellow; } foreach (Label l in flowLayoutPanel2.Controls) { l.BackColor = Color.Yellow; } } void makeMoveable() { foreach (Label l in flowLayoutPanel1.Controls) { l.MouseDown += new MouseEventHandler(labelMouseDown); l.MouseMove += new MouseEventHandler(labelMouseMove); l.MouseUp += new MouseEventHandler(lableMouseUp); } foreach (Label l in flowLayoutPanel2.Controls) { l.MouseDown += new MouseEventHandler(labelMouseDown); l.MouseMove += new MouseEventHandler(labelMouseMove); l.MouseUp += new MouseEventHandler(lableMouseUp); } } void Disableflowsnap() { foreach (FlowLayoutPanel flp in Controls.OfType
Что я уже пробовал:
сохранение в xml, создание сериализуемого класса