當前位置:成語大全網 - 新華字典 - vba treeview選中節點 同時勾選復選框

vba treeview選中節點 同時勾選復選框

果勾選所有子節點,父節點也會勾選;如果某子節點取消勾選,則所有父節點也取消勾選”,下面的代碼能全做到:

//設置標誌,防止死循環

bool check = false;

//節點勾選後事件,如果更改某壹節點狀態會自動觸發,所以在後面的方法中無需遞歸

private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)

{

if(check==false)

setchild(e.Node);

setparent(e.Node);

check = false;

}

//設置子節點狀態

private void setchild(TreeNode node)

{

foreach (TreeNode child in node.Nodes)

{

child.Checked = node.Checked;

}

check = true;

}

//設置父節點狀態

private void setparent(TreeNode node)

{

if (node.Parent != null)

{

//如果當前節點狀態為勾選,則需要所有兄弟節點都勾選才能勾選父節點

if (node.Checked)

foreach (TreeNode brother in node.Parent.Nodes)

{

if (brother.Checked == false)

return;

}

node.Parent.Checked = node.Checked;

}

}