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;
                }
               

    这个小程序还有很多不足

  • 相关阅读:
    项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦)
    Git 更安全的强制推送,--force-with-lease
    WPF/UWP 的 Grid 布局竟然有 Bug,还不止一个!了解 Grid 中那些未定义的布局规则
    冷算法:自动生成代码标识符(类名、方法名、变量名)
    自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference
    如何快速编写和调试 Emit 生成 IL 的代码
    使用 Emit 生成 IL 代码
    UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush)
    使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning)
    语义版本号(Semantic Versioning)
  • 原文地址:https://www.cnblogs.com/yzwss/p/8360006.html
Copyright © 2011-2022 走看看