zoukankan      html  css  js  c++  java
  • 街道管理

    写一个小程序

    具体效果如下

    第一步建类

    Aderss类

     public class Address
       {
           private string street;//街道
           private string jwh;//居委会
           private string floornum;//楼号
              public string Street
           {
               get { return street; }
               set { street = value; }
           }
    
           public string Jwh
           {
               get { return jwh; }
               set { jwh = value; }
           }
    
           public string Floornum
           {
               get { return floornum; }
               set { floornum = value; }
           }
    
          
       }

    Commom类(主要用于解析XML文件)

    public class Common
        {
            //解析XML文件,并且将解析的Xml文件内容加载到集合中
          //public   List<Address> list=new List<Address>();  key:
           public  Dictionary<string,RoomAddress> list=new Dictionary<string, RoomAddress>(); 
           public  void ReadDataFromXML()
            {
               XmlDocument doc=new XmlDocument();
               doc.Load("Address.xml");
               XmlNode root = doc.DocumentElement;
               foreach (XmlNode item in root.ChildNodes)
               {
                   //创建一个地址对象
                   //Address address=new Address();
                   //address.Street = root.Attributes["name"].InnerText;
                   //address.Jwh = item.Attributes["name"].InnerText;
                  string street = root.Attributes["name"].InnerText;
                  string jwh= item.Attributes["name"].InnerText;
                   foreach (XmlNode child in item.ChildNodes)
                   {
                       string floornum = child.Attributes["name"].InnerText;
                       foreach (XmlNode node in child.ChildNodes)//child代表的是楼号,一个楼层上有多个房间
                       {
                           //每一个node都是一个房间
                           Address address = new Address();
                           address.Street = street;
                           address.Jwh = jwh;
                           address.Floornum = floornum;
                           RoomAddress roomAddress=new RoomAddress();
                           //RoomAddress类中才能反映出当前房间的具体位置信息
                           //包括房间号,所在楼层,所在的校区,所在的街道
                           //华清嘉园    B 1005  101
                           //羊城花园  +A1004    101
                           roomAddress.Roomnum =node.InnerText;
                           roomAddress.Address = address;
                           list.Add(address.Jwh+address.Floornum + roomAddress.Roomnum, roomAddress);
                           
                       }
                   }
                  
               }
            }
        }

    RoomAdress类

    public class RoomAddress
       {
           public RoomAddress()
           {
               address=new Address();
           }
    
           private string roomnum;
           private Address address;
           public string Roomnum
           {
               get { return roomnum; }
               set { roomnum = value; }
           }
    
           public Address Address
           {
               get { return address; }
               set { address = value; }
           }
       }

    在主主窗体创建方法用于调用XML文件并且与Treeview绑定

      common.ReadDataFromXML();
                TreeNode root=new TreeNode();
                root.Text = "石牌街道";
                tvShow.Nodes.Add(root);
                string jwh= "";
                TreeNode tn = null;
                TreeNode tnfloor = null;
                string floor = "";
                TreeNode child = null;
                foreach (RoomAddress address in common.list.Values)//RoomAddress
                {
                    if (floor != address.Address.Floornum)
                    {
                        if (jwh != address.Address.Jwh)
                        {
                            tn = new TreeNode();
                            tn.Text = address.Address.Jwh;
                            root.Nodes.Add(tn);
                        }
                        tnfloor = new TreeNode();
                        tnfloor.Text = address.Address.Floornum;
                        tn.Nodes.Add(tnfloor);
                    }
                    child = new TreeNode();
                    child.Text = address.Roomnum;
                    tnfloor.Nodes.Add(child);
                    jwh = address.Address.Jwh;
                    floor = address.Address.Floornum;         
                }

    TreeView的选中事件并且将将节点上的文字赋值到TextBox控件上

     //获取当前选中的节点
    
                TreeNode selectNode = tvShow.SelectedNode;
                if (selectNode!=null&&selectNode.Level==3)
                {
                    string parentText = selectNode.Parent.Text;
                    string parentandparentText = selectNode.Parent.Parent.Text;
                    string treeText = parentandparentText + parentText + selectNode.Text;
                    txtJWH.Text = common.list[treeText].Address.Jwh;
                    txtStreet.Text = common.list[treeText].Address.Street;
                    txtRoomNum.Text = common.list[treeText].Roomnum;
                    txtFloor.Text = common.list[treeText].Address.Floornum;
                }
               

    这个小程序还有很多不足

  • 相关阅读:
    Android数据存储之Application
    contentOffset、contentSize和contentInset
    block
    IOS中的深拷贝和浅拷贝
    手势图的设计原理(2)拖拽、捏合、轻扫、旋转
    深浅拷贝的应用-copy、mutableCopy
    手势图的设计原理(1)建立、开始、移动、结束、点击、长按
    UIView
    MVC-Model
    UIPageControl页面控制的控件
  • 原文地址:https://www.cnblogs.com/yzwss/p/8360006.html
Copyright © 2011-2022 走看看