0

ツリービュー コントロールをいじっていて、単純な問題に遭遇しました。親ノードとして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--;
            }

        }
    }
4

2 に答える 2

0

したがって、私が正しく理解していれば、最終結果は次のようになります。

-- 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());
}
于 2012-08-21T19:29:03.743 に答える
0

多分それは私ですが、あなたが探しているものを見ることができません...あなたがこれを意味すると仮定します(与えられた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());
        }
    }
}
于 2012-08-21T19:24:02.753 に答える