如何在选中其所有子节点时禁用父级中的复选框

时间:2014-12-05 08:10:50

标签: c# winforms treeview

我希望在所有节点和子节点都是checke后禁用用户在TreeView中更改复选框的状态。这是我检查treeview中所有项目的方式:

private void CheckItems()
{
   foreach (TreeNode node in tvSastavnica.Nodes)
   {
     node.Checked = true;
     CheckChildren(node, true);
   }
}

private void CheckChildren(TreeNode rootNode, bool isChecked)
{
    foreach (TreeNode node in rootNode.Nodes)
    {
      CheckChildren(node, isChecked);
      node.Checked = isChecked;
    }
 }

现在我想要灰色或以某种方式锁定复选框以防止改变状态。有可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用 BeforeCheck AfterCheck 事件执行此操作:

private void tvSastavnica_BeforeCheck(object sender, TreeViewCancelEventArgs e)
{
    e.Cancel = true;
}

或者:

private void tvSastavnica_AfterCheck(object sender, TreeViewCancelEventArgs e)
{
    e.Cancel = true;
}