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];