C# 当选中父节点的所有子节点时,如何禁用父节点中的复选框
我想在选中所有节点和子节点后,禁用用户更改树视图中复选框的状态。这是我在treeview中检查所有项目的方式:C# 当选中父节点的所有子节点时,如何禁用父节点中的复选框,c#,winforms,treeview,C#,Winforms,Treeview,我想在选中所有节点和子节点后,禁用用户更改树视图中复选框的状态。这是我在treeview中检查所有项目的方式: private void CheckItems() { foreach (TreeNode node in tvSastavnica.Nodes) { node.Checked = true; CheckChildren(node, true); } } private void CheckChildren(TreeNode rootNode,
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;
}
}
现在,我想灰色或以某种方式锁定复选框,以防止改变状态。有可能吗?您可以使用检查前和检查后事件执行此操作:
private void tvSastavnica_BeforeCheck(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = true;
}
或:
将你的treeview的Enabled属性设置为false,这样可以吗?不幸的是不行,因为我无法滚动或搜索treeview。
private void tvSastavnica_AfterCheck(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = true;
}