Một yêu cầu phổ biến đối với Form là nhớ lại vị trí và kích thước cuối cùng của nó. Thông thường, thông tin này được lưu trữ trong registry. Tuy nhiên, bài viết này, mình xin chia sẻ thêm 1 cách khác, đó là dùng XML để lưu lại kích thước, vị trí của Form
- Điều đầu tiên các bạn cần làm là thêm vào namespace:
- Bây giờ, bạn thụ lý tình huống Load của Form như sau:
Mã:
private void Form1_Load(object sender, EventArgs e) { try { //trường hợp Form được nạp //trong những lần kế tiếp XmlDocument xmlDoc = new XmlDocument(); /ạp cauhinh.xml, lấy thông tin và trả về vị trí trước kia //cho Form xmlDoc.Load("cauhinh.xml"); this.Height = int.Parse(xmlDoc.DocumentElement["Height"].InnerText); this.Width = int.Parse(xmlDoc.DocumentElement["Width"].InnerText); this.Left = int.Parse(xmlDoc.DocumentElement["Left"].InnerText); this.Top = int.Parse(xmlDoc.DocumentElement["Top"].InnerText); } catch { //trong trường hợp Form được nạp vào lần đầu tiên //thì sẽ tạo ra cauhinh.xml //và lưu kích thước Form vào int height = this.Height; int width = this.Width; int left = this.Left; int top = this.Top; XmlTextWriter writer = new XmlTextWriter("cauhinh.xml", null); writer.WriteStartDocument(); writer.WriteStartElement("cauhinh"); writer.WriteStartElement("Height"); writer.WriteString(height.ToString()); writer.WriteEndElement(); writer.WriteStartElement("Width"); writer.WriteString(width.ToString()); writer.WriteEndElement(); writer.WriteStartElement("Left"); writer.WriteString(left.ToString()); writer.WriteEndElement(); writer.WriteStartElement("Top"); writer.WriteString(top.ToString()); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close(); //tài liệu XML lúc này có dạng: //<?xml version="1.0" ?> // <cauhinh> //<Height>556</Height> //<Width>697</Width> //<Left>111</Left> //<Top>53</Top> //</cauhinh> } }
- Kế tiếp, bạn thụ lý tình huống FormClosed của Form như sau:
Mã:
private void Form1_FormClosed(object sender, FormClosedEventArgs e) { //Khi Form được đóng /ó sẽ nạp cauhinh.xml //để lưu lại kích thước lúc này XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("cauhinh.xml"); xmlDoc.DocumentElement["Height"].InnerText = this.Height.ToString(); xmlDoc.DocumentElement["Width"].InnerText = this.Width.ToString(); xmlDoc.DocumentElement["Top"].InnerText = this.Top.ToString(); xmlDoc.DocumentElement["Left"].InnerText = this.Left.ToString(); xmlDoc.Save("cauhinh.xml"); }
Bây giờ, bạn thử nhấn F5 để Run chương trình đi nào, sau đó thay đổi kích thước của Form và đóng Form rồi lại mở ra nữa. Bạn sẽ nhận được điều mình cần.
View more random threads:
Thông qua phân tích dữ liệu Google từ 86 quốc gia, mới đây, một công ty tại Anh đã công bố bảng xếp hạng kích tấc "cậu nhỏ" của các nước trên thế giới. Kết quả, hầu hết các nước xếp ở nhóm đầu của...
"Chim" của chàng trai Việt thuộc...