首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# Treeview 有关问题

2013-11-09 
C# Treeview 问题for (int i 0 myDataSet.Tables[0].Rows.Count i i++){MessageBox.Show(i.ToString

C# Treeview 问题

  for (int i = 0; myDataSet.Tables[0].Rows.Count > i; i++)
            {
                MessageBox.Show(i.ToString());
                MessageBox.Show(myDataSet.Tables[0].Rows.Count.ToString());
                TreeNode node = new TreeNode(myDataSet.Tables[0].Rows[i][1].ToString());
                MessageBox.Show(node.Text);
                //node.Tag = myDataSet.Tables["clientType"].Rows[i]["id"].ToString();
                for (int m = 0; m < this.treeView1.Nodes.Count; m++)
                {
                    TreeNode pnode = this.treeView1.GetNodeAt(m, 0);
                    if (pnode.Text == "代购")
                    {
                        pnode.Nodes.Add(node);
                    }
                }
            }






问题描述:
这段代码加上pnode.Nodes.Add(node);这句话两成循环之执行一次 去掉就执行M*i次  为什么会这样  
[解决办法]
GetNodeAt(int x,int y)
这个获取的是位置,而不是行号,你这样获取,都是获取第一个节点,所以
if (pnode.Text == "代购")这个全都是true
应该改成this.treeView1.Nodes[m];

TreeNode pnode = this.treeView1.GetNodeAt(m, 0);
改成
TreeNode pnode = this.treeView1.Nodes[m];

热点排行