我正在玩树视图控件并遇到了一个简单的问题。我想将它设置为可被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--;
}
}
}
答案 0 :(得分: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());
}
}
}
答案 1 :(得分: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());
}