Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Lưu lại kích thước và vị trí của Form vào tài liệu XML trong C#

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Smile Lưu lại kích thước và vị trí của Form vào tài liệu XML trong C#

    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:
    Visual C# Code:
    1. using System.Xml;

    - Bây giờ, bạn thụ lý tình huống Load của Form như sau:
    Visual C# Code:
    1.         private void Form1_Load(object sender, EventArgs e)
    2.         {
    3.             try
    4.             {
    5.                 //trường hợp Form được nạp
    6.                 //trong những lần kế tiếp
    7.                 XmlDocument xmlDoc = new XmlDocument();
    8.                 //nạp cauhinh.xml, lấy thông tin và trả về vị trí trước kia
    9.                 //cho Form
    10.                 xmlDoc.Load("cauhinh.xml");
    11.                 this.Height = int.Parse(xmlDoc.DocumentElement["Height"].InnerText);
    12.                 this.Width = int.Parse(xmlDoc.DocumentElement["Width"].InnerText);
    13.                 this.Left = int.Parse(xmlDoc.DocumentElement["Left"].InnerText);
    14.                 this.Top = int.Parse(xmlDoc.DocumentElement["Top"].InnerText);
    15.             }
    16.             catch
    17.             {
    18.                 //trong trường hợp Form được nạp vào lần đầu tiên
    19.                 //thì sẽ tạo ra cauhinh.xml
    20.                 //và lưu kích thước Form vào
    21.                 int height = this.Height;
    22.                 int width = this.Width;
    23.                 int left = this.Left;
    24.                 int top = this.Top;
    25.                 XmlTextWriter writer = new XmlTextWriter("cauhinh.xml", null);
    26.                 writer.WriteStartDocument();
    27.                 writer.WriteStartElement("cauhinh");
    28.  
    29.                 writer.WriteStartElement("Height");
    30.                 writer.WriteString(height.ToString());
    31.                 writer.WriteEndElement();
    32.  
    33.                 writer.WriteStartElement("Width");
    34.                 writer.WriteString(width.ToString());
    35.                 writer.WriteEndElement();
    36.  
    37.                 writer.WriteStartElement("Left");
    38.                 writer.WriteString(left.ToString());
    39.                 writer.WriteEndElement();
    40.  
    41.                 writer.WriteStartElement("Top");
    42.                 writer.WriteString(top.ToString());
    43.                 writer.WriteEndElement();
    44.  
    45.                 writer.WriteEndElement();
    46.                 writer.WriteEndDocument();
    47.                 writer.Close();
    48.                 //tài liệu XML lúc này có dạng:
    49.                 //<?xml version="1.0" ?>
    50.                 // <cauhinh>
    51.                 //<Height>556</Height>
    52.                 //<Width>697</Width>
    53.                 //<Left>111</Left>
    54.                 //<Top>53</Top>
    55.                 //</cauhinh>
    56.             }
    57.         }


    - Kế tiếp, bạn thụ lý tình huống FormClosed của Form như sau:
    Visual C# Code:
    1.         private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    2.         {
    3.             //Khi Form được đóng
    4.             //nó sẽ nạp cauhinh.xml
    5.             //để lưu lại kích thước lúc này
    6.             XmlDocument xmlDoc = new XmlDocument();
    7.             xmlDoc.Load("cauhinh.xml");
    8.  
    9.             xmlDoc.DocumentElement["Height"].InnerText = this.Height.ToString();
    10.             xmlDoc.DocumentElement["Width"].InnerText = this.Width.ToString();
    11.             xmlDoc.DocumentElement["Top"].InnerText = this.Top.ToString();
    12.             xmlDoc.DocumentElement["Left"].InnerText = this.Left.ToString();
    13.             xmlDoc.Save("cauhinh.xml");
    14.         }


    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.

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Ngày xưa settings thiết lập bằng file *.ini (initialization) , bây giờ có xml tiện dụng đa năng hơn, phê thật
    None!

Các đề tài tương tự

  1. ADO.NET Lỗi Incorrect syntax near 'Form' trong form đăng nhập C#
    Gửi bởi vodoi_93 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 08-12-2013, 04:48 PM
  2. Làm thế nào để click vào nút minimum trong form thì form ẩn đi không xuất hiện ở taskbar?
    Gửi bởi thanhhungph127 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 16-07-2013, 09:45 PM
  3. Cách Refresh Form trong 1 hàm thuộc 1 class khác, mà được gọi trong form đó?
    Gửi bởi troy91 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 14-04-2012, 10:13 PM
  4. Sự kiện nhập chữ trong gridview ở form khác thì form này sẽ lấy chữ và id của field
    Gửi bởi lotus88 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 03-07-2011, 05:20 PM
  5. lỗi code khi viết form Thêm trong windows form
    Gửi bởi maixanh88 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 14-08-2010, 10:50 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn