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

Đề tài: Lưu cấu hình cho ứng dụng sử dụng XML trong lập trình C#

  1. #1
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,760

    Mặc định Lưu cấu hình cho ứng dụng sử dụng XML trong lập trình C#

    Lưu cấu hình cho ứng dụng sử dụng XML Có rất nhiều cách để lưu cấu hình cho ứng dụng nhưng cách phổ biển và dể dùng nhất là XML. Bài viết này mình sẻ hướng dẩn một ví dụ mẩu cho các bạn hiểu để sử dụng vào ứng dụng của mình. Ứng dụng này sẻ lưu lại các trạng thái như chiều rộng, chiều cao, vị trí, và các item của ứng dụng.


    Đầu tiên bạn tạo ứng dụng gồm có 4 control như hình minh họa
    - listBox1(Anchor:Top, Bottom)
    - textBox1 (Anchor:Bottom,Left,Right)
    - button1(Text:Thêm, Anchor:Bottom,Right)
    - button2(Text:Xóa, Anchor:Bottom,Right)

    Tiếp theo bạn sử lý sự kiện click cho button1

    Visual C# Code:
    1. listBox1.Items.Add(textBox1.Text);// thêm vào listBox1 một item lấy từ textbox1


    sử lý sự kiện click cho button2
    Visual C# Code:
    1.    if(listBox1.SelectedIndex != -1)
    2.    {
    3.        listBox1.Items.RemoveAt(listBox1.SelectedIndex);// gở bỏ item mà listBox1 đang chọn
    4.    }

    sử lý sự kiện Load cho Form

    Visual C# Code:
    1. //khởi tạo đối tượng XmlDoc
    2. System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
    3. {
    4.     //load dử liều
    5.     xmlDoc.Load("data.xml");
    6.  
    7.     //load các trạng thái cho ứng dụng
    8.     this.Top = int.Parse(xmlDoc.DocumentElement["top"].InnerText);
    9.     this.Left = int.Parse(xmlDoc.DocumentElement["left"].InnerText);
    10.     this.Width = int.Parse(xmlDoc.DocumentElement["width"].InnerText);
    11.     this.Height = int.Parse(xmlDoc.DocumentElement["height"].InnerText);
    12.  
    13.     for(int i=0; i<xmlDoc.DocumentElement["items"].ChildNodes.Count;i++)
    14.     {
    15.         listBox1.Items.Add(xmlDoc.DocumentElement["items"].ChildNodes[i].InnerText);
    16.     }
    17. }
    18. {
    19.     System.IO.StreamWriter sw = new System.IO.StreamWriter("data.xml");
    20.     sw.WriteLine("<?xml version='1.0' encoding='utf-8'?>");
    21.     sw.WriteLine("<data>");
    22.     sw.WriteLine("  <width>460</width>");
    23.     sw.WriteLine("  <height>379</height>");
    24.     sw.WriteLine("  <top>100</top>");
    25.     sw.WriteLine("  <left>100</left>");
    26.     sw.WriteLine("  <items>");
    27.     sw.WriteLine("    <item>a</item>");
    28.     sw.WriteLine("    <item>b</item>");
    29.     sw.WriteLine("    <item>c</item>");
    30.     sw.WriteLine("  </items>");
    31.     sw.WriteLine("</data>");
    32.     sw.Close();
    33.  
    34.     //load dử liều
    35.     xmlDoc.Load("data.xml");
    36.  
    37.     //load các trạng thái cho ứng dụng
    38.     this.Top = int.Parse(xmlDoc.DocumentElement["top"].InnerText);
    39.     this.Left = int.Parse(xmlDoc.DocumentElement["left"].InnerText);
    40.     this.Width = int.Parse(xmlDoc.DocumentElement["width"].InnerText);
    41.     this.Height = int.Parse(xmlDoc.DocumentElement["height"].InnerText);
    42.  
    43.     for(int i=0; i<xmlDoc.DocumentElement["items"].ChildNodes.Count;i++)
    44.     {
    45.         listBox1.Items.Add(xmlDoc.DocumentElement["items"].ChildNodes[i].InnerText);
    46.     }
    47. }

    Sử lý sự kiện Close cho Form

    Visual C# Code:
    1.   //khởi tạo đối tượng XmlDoc
    2.   System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
    3.  
    4.   //load dử liều
    5.   xmlDoc.Load("data.xml");
    6.  
    7.   //lưu các trạng thái cho ứng dụng
    8.   xmlDoc.DocumentElement["top"].InnerText = this.Top.ToString();
    9.   xmlDoc.DocumentElement["left"].InnerText = this.Left.ToString();
    10.   xmlDoc.DocumentElement["width"].InnerText = this.Width.ToString();
    11.   xmlDoc.DocumentElement["height"].InnerText = this.Height.ToString();
    12.  
    13.   //gở bỏ tất cả các element con của items
    14.   xmlDoc.DocumentElement["items"].RemoveAll();
    15.   for(int i=0; i<listBox1.Items.Count;i++)
    16.   {
    17.      //khởi tạo đối tượng element có tên item
    18.      System.Xml.XmlElement xmlElement = xmlDoc.CreateElement("item");
    19.      xmlElement.InnerText = listBox1.Items[i].ToString();
    20.  
    21.      //thêm element đến element items
    22.      xmlDoc.DocumentElement["items"].AppendChild(xmlElement);
    23.   }
    24.   // lưu dử liệu
    25.   xmlDoc.Save("data.xml");

    Nguồn diendtinhoc.net
    Attached Files Attached Files
    Email: kevin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó.
    Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp hoặc bị sự thiếu kỷ luật làm tiêu tan sự nghiệp.

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