qq_44755477 2020-05-06 14:56 采纳率: 0%
浏览 173

关于为什么treeview不显示节点的问题, 请大神指点指点,是不是遍历的问题

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 索引
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    private void Form1_Load(object sender, EventArgs e)
    {
        var Plines = File.ReadAllLines(AppDomain.CurrentDomain.BaseDirectory + "\\provinces.csv");
        int i = 0;
        int j = 0;
        int k = 0;
        var PlineByte = Encoding.Default.GetBytes(Plines[i]);
        var PlineStr = Encoding.Default.GetString(PlineByte, 0, PlineByte.Length);
        var Pid = PlineStr.Substring(0, 2);
        var Pname = PlineStr.Substring(i + 4, 3);


        var Clines = File.ReadAllLines(AppDomain.CurrentDomain.BaseDirectory + "\\cities.csv");



        var ClineByte = Encoding.Default.GetBytes(Clines[j]);
        var ClineStr = Encoding.Default.GetString(ClineByte, 0, ClineByte.Length);
        var Ccode = ClineStr.Substring(0, 4);
        var Cname = ClineStr.Substring(j + 6, 3);
        var CPcode = ClineStr.Substring(j + 11, 2);


        var Alines = File.ReadAllLines(AppDomain.CurrentDomain.BaseDirectory + "\\areas.csv");



        var AlineByte = Encoding.Default.GetBytes(Alines[k]);
        var AlineStr = Encoding.Default.GetString(AlineByte, 0, AlineByte.Length);
        var Acode = AlineStr.Substring(0, 4);
        var Aname = AlineStr.Substring(k + 8, 3);
        var APcode = AlineStr.Substring(k + 18, 2);

        while (i < Plines.Length)
        {
            if (Pid != null)
            {
                TreeNode tn1 = treeView2.Nodes.Add(Pname);
                while (j < Clines.Length)
                {

                    if (Pid == CPcode)
                    {
                        TreeNode tn2 = tn1.Nodes.Add(Cname);

                        while (k < Alines.Length)
                        {
                            if (APcode == CPcode)
                            {
                                TreeNode tn3 = tn2.Nodes.Add(Aname);
                                k += 21;
                            }
                            else break;
                        }

                        j += 14;

                    }
                    else break;

                }
                i += 9;
            }
            else break;
        }
    } 

    private void treeView2_AfterSelect(object sender, TreeViewEventArgs e)
    {

    }
}

}
图片说明

以下是 provinces ,cities,areas的图片
图片说明
图片说明
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-06 15:16
    关注

    不知道你为什么用substring不用split
    不会?还是故意不用

        while (i < Plines.Length)
        {
            if (Pid != null)
            {
                TreeNode tn1 = treeView2.Nodes.Add(Pname);
    

    这里下断点调试下,两个条件是否满足

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料