簡體   English   中英

將節點添加到Treeview控件

[英]Adding nodes to Treeview control

我在玩Treeview控件,遇到了一個簡單的問題。 我想將其設置為所有可被10整除的父節點,然后其下的數字應為子節點,直到達到另一個可被10整除的數字而沒有余數。 所以我的方法看起來像這樣,需要幫助! 謝謝。

        private  void countDown(int num)
    {
        tv_NumList.Nodes.Add("topNode");
        while (num != 0)
        {
            if (num % 10 == 0)
            {
                tv_NumList.Nodes.Add(num.ToString());

                int counter = 9;
                while (counter != 0)
                {
                    tv_NumList.Nodes[1].Nodes.Add(num.ToString());
                    counter--;
                }
                num--;
            }

        }
    }

也許是我,但我看不到您在尋找什么...假設您是這個意思(給定15)

root 
  |--15
  |--14
  |--13
  |--12
  |--11
 [+]-10


root 
  |--15
  |--14
  |--13
  |--12
  |--11
 [-]-10
     |-- 9
     |-- 8
     |-- 7
     |-- 6
     |-- 5
     |-- 4
     |-- 3
     |-- 2
     |-- 1

以下內容(未經測試)將為您提供此結果。

// changed to take TV as a parameter.
private void countDown(TreeView tv, int num)
{
    // Create and remember your root node.
    var root = new TreeNode("root");
    tv.Nodes.Add(root);

    // This to remember the last 'grouping node' created.  Start with
    // the root node to deal with starting values not divisible by 10.
    TreeNode group = root;

    for ( int i=num; i>0; i--)
    {
        // Is it divisble by 10, if so, start a new group 
        if (num % 10 == 0)
        {
            group = new TreeNode(i.ToString());
            root.Nodes.Add(group);
        }
        else
        {  
            // Not divisible, so add to last group (or root if no 
            // group yet started) 
            group.Nodes.Add(i.ToString());
        }
    }
}

因此,如果我正確理解,則希望最終結果如下所示:

-- ROOT NODE (Divisible by ten)
   +-- 30
   +-- 20
   +-- 10
-- ROOT NODE (everything else)
   +-- 29
   +-- 28
   +-- ...etc...

如果是這樣,那么:

Int32 input = 30;
for (Int32 index = input; index == 0; index--) {
  treeview1.Nodes[0 == index % 10 ? 0 : 1].Nodes.Add(index.ToString());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM