原文来源:http://hi.baidu.com/jm_li_cn/blog/item/017d28c0d2f36e1ea08bb756.html
//下面-->将树的checkbox选中 tvDevice是treeview #region 将树的checkbox选中 private void setNodeTrue(Node selNode) { Node node = selNode.Parent;
if (node != null) { node.CheckState = CheckState.Checked; setNodeTrue(node); } } #endregion #region 将树的checkbox选中 private void setNodeStateTrue(Node selNode) { if (selNode.CheckBoxVisible) { selNode.CheckState = CheckState.Checked; foreach (Node node in selNode.Nodes) { setNodeStateTrue(node); }
} } #endregion #region 将树的checkbox取消选中
private void setNodeStateFalse(Node selNode) { if (selNode.CheckBoxVisible) { selNode.CheckState = CheckState.Unchecked; foreach (Node node in selNode.Nodes) { setNodeStateFalse(node); }
} } #endregion #region 将树的checkbox取消选中
private void setNodeFalse(Node selNode) { Node nextNode = selNode.NextNode; Node previousNode = selNode.PrevNode; Node praNode = selNode.Parent; if (praNode != null) { while (nextNode != null) { if (nextNode.Checked) { return; } nextNode = nextNode.NextNode; } while (previousNode != null) { if (previousNode.Checked) { return; } previousNode = previousNode.PrevNode; } praNode.CheckState = CheckState.Unchecked; setNodeFalse(praNode); } } #endregion #region 单击树的checkbox事件
private void tvDevice_AfterCheck(object sender, AdvTreeCellEventArgs e) { Node node = tvDevice.SelectedNode; //bool bo = node.Checked; if (node.Checked) { setNodeTrue(node); setNodeStateTrue(node); } else { setNodeStateFalse(node); setNodeFalse(node); } } #endregion |
|
来自: 昵称9255533 > 《TreeView》