XML文件的读写和Treeview使用

首先,声明本人是编程小白,但是找了一份程序猿的工作,最近在学习使用treeview,记录一下过程。

功能要求:编写一个快捷菜单,快捷菜单可以编辑(删除和增加)。

这个功能使用winform窗口程序的Treeview实现。在实现功能的过程中,探索到了以下几种Treeview树的建立语句。

建立树:第一种方法:

       TreeNode rootnode = treeView1.TopNode;
        rootnode.Text = "分析平台";
        //treeView1.Nodes.Add("分析平台");
        TreeNode secondnode = treeView1.TopNode.Nodes.Add("快捷菜单");
        TreeNode secondnode1 = treeView1.TopNode.Nodes.Add("布控预警");
        TreeNode thirdnode = secondnode.Nodes.Add("添加");
        thirdnode = secondnode.Nodes.Add("手机热点查询");
        thirdnode = secondnode.Nodes.Add("手机侦码查询");
        thirdnode = secondnode.Nodes.Add("首次入城查询");
        thirdnode = secondnode.Nodes.Add("区域常采人口查询");
        thirdnode = secondnode.Nodes.Add("手机侦码碰撞分析");
        thirdnode = secondnode.Nodes.Add("手机侦码伴随分析");
        thirdnode = secondnode.Nodes.Add("人口流量分析");
        TreeNode thirdnode1 = secondnode1.Nodes.Add("重点嫌疑目标");
        thirdnode1 = secondnode1.Nodes.Add("人像保存库");
        thirdnode1 = secondnode1.Nodes.Add("通知人员");
        thirdnode1 = secondnode1.Nodes.Add("设备通知策略");

在这段程序中“分析平台”是树的根目录,secondnode是树的二级节点,thirdnode是树的三级节点。程序运行的结果如下:

建立树:第二种方法:

TreeNode Rootnode1 = new TreeNode("分析平台");
            // var secondnode7 = Rootnode1.Nodes.Add(data);
            var secondnode1 = Rootnode1.Nodes.Add("快捷菜单");
            var secondnode2 = Rootnode1.Nodes.Add("设备管理");
            var secondnode3 = Rootnode1.Nodes.Add("信息检索");
            var secondnode4 = Rootnode1.Nodes.Add("数据分析");
            var secondnode5 = Rootnode1.Nodes.Add("布控预警");
            //布控预警
            var thridnode51 = secondnode5.Nodes.Add("重点嫌疑目标");
            var thridnode52 = secondnode5.Nodes.Add("人像保存库");
            var thridnode53 = secondnode5.Nodes.Add("通知人员");
            var thridnode54 = secondnode5.Nodes.Add("设备通知策略");
            //布控预警
            var secondnode6 = Rootnode1.Nodes.Add("告警查询");
            var thridnode0 = secondnode1.Nodes.Add("添加");
            var thridnode1 = secondnode1.Nodes.Add("手机热点查询");
            var thridnode2 = secondnode1.Nodes.Add("手机侦码查询");
            var thridnode3 = secondnode1.Nodes.Add("首次入城查询");
            var thridnode4 = secondnode1.Nodes.Add("区域常采人口查询");
            var thridnode5 = secondnode1.Nodes.Add("手机侦码碰撞分析");
            var thridnode6 = secondnode1.Nodes.Add("手机侦码伴随分析");
            var thridnode7 = secondnode1.Nodes.Add("人口流量分析");
            this.treeView1.Nodes.Add(Rootnode1);

这种方法是我尝试的第一种方法,建立的树的结构和第一种的结果呈现是一样的,但是在后续的程序编写中出现了问题,所以不推荐使用这种方法。

在手动建立好树的结构之后,我首先想到的是将树的结构保存下来,保存树的结构的途径可以说是有很多种:使用数据库、保存到XML文件、建立一个数据结构存储数据。在这里我使用的是XML文件的形式。

读取XML文件中的数据:

        string FileName = Directory.GetCurrentDirectory() + @"\TreeNode.xml";
        ConvertXMLToTree cxt = new ConvertXMLToTree();
        this.treeView1.BeginUpdate();
        cxt.BuildTree(FileName, this.treeView1);
        this.treeView1.EndUpdate();

读取到XML文件之后,将数据存储到Treeview1中。

将treeview中的数据写入XML文件:

      ConvertXMLToTree cxt = new ConvertXMLToTree();
      cxt.SaveTree("TreeNode.xml", treeView1);

按理说,到这个程度程序基本上就已经完成了,但是,出现了一个问题:XML文件在保存Treeview树的结构的时候,只允许树的结构有一个根节点。但是我通过拼接树的结构,每次都会出现至少两个根节点的情况。

解决办法:

新建一个树,首先建立一个根节点,将要添加的节点以二级节点的形式拼接到新建的树结构中。

猜你喜欢

转载自blog.csdn.net/qq_24372579/article/details/82320185
今日推荐