街道管理

来源:互联网 发布:天下三龙巫捏脸数据 编辑:程序博客网 时间:2024/04/27 14:50

    一:搭建窗体

         所需控件:TreeView、Label、TextBox

          效果示图:

                          


  二:项目要求

     1. 点击左侧树状菜单其中内容,右侧则将其所点信息输出显示

     2.创建表示地址信息的实体类,并使用泛型集合保存XML文件中的信息。


  三:项目分析+代码实现

        1.解析xml文件,将内容绑定到TreeView控件上。(难点,也是该项目的核心所在)

            既然要解析xml,在C#编程中,我们就要用到XmlDocument对象来获取XML文件中的节点值,

            从上图可以看到,点击每个不同的节点,右侧TextBox控件的Text会呈现不同的值,我们要怎么

            来实现这一功能呢?这里我就用foreach循环来实现。

              

             //解析xml文件            XmlDocument xml = new XmlDocument();            xml.Load("Address.xml"); //获取xml文件路径            XmlNode node1 = xml.DocumentElement; //获取xml文件根节点            string name1 = node1.Attributes["name"].Value;//获取该节点的值            TreeNode node2 = new TreeNode(name1);            treeView1.Nodes.Add(node2);//获取树节点集合            //获取节点的所有子节点            foreach (XmlNode  item in node1.ChildNodes )            {                string name2=item .Attributes["name"].Value;                TreeNode node3 = new TreeNode(name2);                node2.Nodes.Add(node3);                foreach (XmlNode  item2 in item.ChildNodes )                {                        //获取该节点值                    string name3=item2.Attributes["name"].Value ;                    string smid=item2.Attributes["smid"].Value ;                    TreeNode node4 = new TreeNode(name3);                    node3.Nodes.Add(node4);                    foreach (XmlNode  item3 in item2.ChildNodes )                    {                        TreeNode node5 = new TreeNode(item3 .InnerText );                        node4.Nodes.Add(node5);//获取树节点对象集合                        if (item3.Name == "fjname")//当在派生类中被重写时,获取节点限定名                        {                             DiZhi dz=new DiZhi ();                            dz.Name = name1;                            dz.Juwei = name2;                            dz.Jianzhu = name3;                            dz.Fjname = item3.InnerText;                            node5.Tag = dz;                        }                                                                                           }


        2.接下来就是TreeView单击事件了。

                 

 private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)        {            if (treeView1.SelectedNode.Level == 3)            {                DiZhi st = (DiZhi)treeView1.SelectedNode.Tag;                txtjiedao.Text = st.Name;                txtjuweihui.Text = st.Juwei;                txtloudao.Text = st.Jianzhu;                txtfangjianhao.Text = st.Fjname;            }                           }
 

         

0 0
原创粉丝点击