TreeView的问题:遍历节点处理CheckBox方面的
在TreeView的AfterCheck事件里写的代码,目的是选中父节点的复选框,所有的子节点的复选框都选中;取消父节点所有子节点取消;点击一个子节点,父节点也选中;如果当前所有子节点都取消选中,则父节点也取消
但是由于是AfterCheck事件,我发现在事件里比如点击了父节点,子节点也选中,结果就又触发了子节点的事件,继而触发父节点,导致死循环~~
用Click事件写的话不知道如何获得点击当前节点
AfterCheck事件:
if (e.Node.Nodes.Count == 0) //如果是叶子节点
{
if (e.Node.Checked) //如果该节点为选中则处理父节点选中
{
e.Node.Parent.Checked = true;
}
else //如果该节点取消选中
{
for (int i = 0; i < e.Node.Parent.Nodes.Count; i++)
{
if (e.Node.Parent.Nodes[i].Checked)
{
e.Node.Parent.Checked = true;
break;
}
else
e.Node.Parent.Checked = false;
}
}