读取XML文件动态绑定TreeView控件
一、语言和环境
A、实现语言
C#
B、环境要求
Visual Studio 2012
二、功能要求
现使用.NET WinForms技术为居委会开发一个街道管理软件,其中街道管理窗体界面如图-4所示。
要求:
1、读取提供的XML文件(详见\提供给学员的素材\Address.xml),将其信息动态添加到TreeView控件中。
2、创建表示地址信息的实体类,并使用泛型集合保存XML文件中的信息。
3、选中某子节点,能够将相关信息显示到右侧的文本框中,如图-4所示。
4、窗体标题为“街道管理”。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml; namespace 街道管理 { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } #region 定义一个方法读取xml文件 public void ReadXmlToTvList() { XmlDataDocument doc = new XmlDataDocument(); doc.Load("Address.xml"); XmlNode nodes = doc.DocumentElement; TreeNode tn = new TreeNode(); tn.Text = nodes.Attributes["name"].InnerText; tvList.Nodes.Add(tn); TreeNode tns = null; TreeNode childs = null; foreach (XmlNode item in nodes.ChildNodes) { tns = new TreeNode(); tns.Text = item.Attributes["name"].InnerText; tns.Tag = item; TreeNode child =null; foreach (XmlNode node in item.ChildNodes) { child = new TreeNode(); child.Text = node.Attributes["name"].InnerText; foreach (XmlNode items in node.ChildNodes) { childs = new TreeNode(); childs.Text = items.InnerText; child.Nodes.Add(childs); } tns.Nodes.Add(child); } tn.Nodes.Add(tns); } } #endregion private void FrmMain_Load(object sender, EventArgs e) { ReadXmlToTvList(); } private void tvList_AfterSelect(object sender, TreeViewEventArgs e) { if(tvList.SelectedNode.Level==0) { txtStreet.Text = tvList.SelectedNode.Text; } if(tvList.SelectedNode.Level==1) { txtStreet.Text = tvList.SelectedNode.Parent.Text; txtJuWei.Text = tvList.SelectedNode.Text; } if(tvList.SelectedNode.Level==2) { txtStreet.Text = tvList.Nodes[0].Text; txtJuWei.Text = tvList.SelectedNode.Parent.Text; txtBudingNO.Text = tvList.SelectedNode.Text; } if(tvList.SelectedNode.Level==3) { txtStreet.Text = tvList.Nodes[0].Text; txtJuWei.Text = tvList.SelectedNode.Parent.Parent.Text; txtBudingNO.Text = tvList.SelectedNode.Parent.Text; txtRoomNO.Text = tvList.SelectedNode.Text; } } private void button1_Click(object sender, EventArgs e) { } } }