[英]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.