首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Winforms (.Net)实现分层数据

使用Winforms (.Net)实现分层数据
EN

Stack Overflow用户
提问于 2018-08-25 02:59:27
回答 1查看 50关注 0票数 0

我有3个下拉列表与以下数据格式。

代码语言:javascript
运行
复制
 Dropdown-1    Dropdown-2      Dropdown-3
-----------    --------------      ---------------
Parent-1          Boy-1                 Girl-1
Parent-2          Boy-2                 Girl-2
Parent-3          Boy-3                 Girl-3

基于下拉框中的选择;

如果从下拉列表中选择Parent-2 \f25 Boy-1 \f6,从下拉列表-2\f25-2\f25 Girl-2 \f6中选择-1\f25-1\f25 Boy-1\f6

然后我需要以下分层格式的结果:

代码语言:javascript
运行
复制
 Parent 1
  Boy 1
       Name 1:
       Age 1: 
  Girl 1
       Name 1:
       Age 1: 
  Girl 2
       Name 2:
       Age 2: 
 Parent 2
   Boy 1
          Name 1:
          Age 1: 
   Girl 1
          Name 1:
          Age 1: 
   Girl 2
          Name 2:
           Age 2:

在这方面需要你的支持。

提前谢谢你,

kka_anand

EN

回答 1

Stack Overflow用户

发布于 2018-08-27 19:32:15

我尝试使用TreeView类,并且能够创建父对象和子对象。当我尝试创建grantchild的时候。它在下面标记的区域中抛出错误。任何修复它的建议。

//=============================================================

代码语言:javascript
运行
复制
              // Add a child treenode for each NameAge object in the current Gender object.
                foreach (NameAge noOfNameAge in noOfParents.ParentOrder)
                {
                    controllerOutput.Nodes[parentArray.IndexOf(noOfParents)].Nodes[genderArray.IndexOf(noOfGender)].Nodes.Add(
                        new TreeNode(noOfNameAge.NameAgeID));
                }

//=============================================================

代码语言:javascript
运行
复制
    // Start of parent class.
    public class Parent : System.Object
    {
        private string parentName = "";
        protected ArrayList parentOrder = new ArrayList();

        public Floor(string parentName)
        {
            this.floorName = parentName;
        }

        public string ParentName
        {
            get { return this.parentName; }
            set { this.parentName = value; }
        }

        public ArrayList ParentOrder
        {
            get { return this.parentOrder; }
        }

    } // End of parent class.



    // Start of gender (Boy/Girl) class.
    public class Corridor : System.Object
    {
        private string genderID = "";
        protected ArrayList genderOrder = new ArrayList();

        public Gender(string genderid)
        {
            this.genderID = genderid;
        }

        public string GenderID
        {
            get { return this.genderID; }
            set { this.genderID = value; }
        }

        public ArrayList GenderOrder
        {
            get { return this.genderOrder; }
        }

    } // End of gender class.



    // Start of NameAge class.
    public class NameAge : System.Object
    {
        private string nameageID = "";
        protected ArrayList nameageOrder = new ArrayList();

        public NameAge(string nameageid)
        {
            this.nameageID = nameageid;
        }

        public string NameAgeID
        {
            get { return this.NameAgeID; }
            set { this.NameAgeID = value; }
        }

        public ArrayList NameAgeOrder
        {
            get { return this.nameageOrder; }
        }

    } // End of NameAge class.



    private ArrayList parentArray = new ArrayList();
    private ArrayList genderArray = new ArrayList();
    private ArrayList nameageArray = new ArrayList();

    private void FillControllerTreeView()
    {

        // Add parent to the ArrayList of Parent objects.
        for (int x = 1; x <= Convert.ToInt32(DropDown-1.SelectedItem.ToString()); x++)
        {
            parentArray.Add(new Parent("Parent - " + x.ToString()));
        }


        // Add Gender(Boy/Girl) to each Parent object in the ArrayList.
        foreach (Parent parent in parentArray)
        {
            for (int y = 1; y <= Convert.ToInt32(DropDown-2.SelectedItem.ToString()); y++)
            {
                parent.ParentOrder.Add(new Gender("Boy - " + y.ToString()));  
            }

            for (int z = 1; z <= Convert.ToInt32(DropDown-3.SelectedItem.ToString()); z++)
            {
                parent.ParentOrder.Add(new Gender("Girl - " + z.ToString()));
            }
        }


        foreach (NameAge nameage in nameageArray)
        {
            for (int y = 0; y <= 2; y++)
            {
                nameage.NameAgeOrder.Add(new NameAge("Light - " + y.ToString()));
            }

            nameage.NameAgeOrder.Add(new NameAge("AC - "));

        }


        controllerOutput.BeginUpdate();
        controllerOutput.Nodes.Clear();

        foreach (Parent noOfParents in parentArray)
        {
            controllerOutput.Nodes.Add(new TreeNode(noOfParents.ParentName));

            // Add a child treenode for each gender object in the current Parent object.
            foreach (Gender noOfGender in noOfParents.ParentOrder)
            {
                controllerOutput.Nodes[parentArray.IndexOf(noOfParents)].Nodes.Add(
                          new TreeNode(noOfGender.GenderID));


                // Add a child treenode for each NameAge object in the current Gender object.
                foreach (NameAge noOfNameAge in noOfParents.ParentOrder)
                {
                    controllerOutput.Nodes[parentArray.IndexOf(noOfParents)].Nodes[genderArray.IndexOf(noOfGender)].Nodes.Add(
                        new TreeNode(noOfNameAge.NameAgeID));
                }

            }
        }

        controllerOutput.EndUpdate();
    }    

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52010323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档