你好我有一个带有复选框的treeView控件:
复选框LEVEL1
checkbox Child1
checkbox Child2
复选框LEVEL2
checkbox Child1
我不允许检查和取消检查Level 1的Child2和Level 2的Child 1?
是否可以在树视图控件中使用?
答案 0 :(得分:1)
问题是,TreeNode没有启用状态,也没有任何可以询问的事件。因此,为了模拟Enabled状态,您可以使用Tag属性并在创建每个节点时保存一个布尔值。
然后你将一个事件添加到TreeView.BeforeCheck并以某种方式实现:
void TreeView_BeforeCheck(object sender, TreeViewCancelEventArgs e)
{
var IsReadOnly = e.Node.Tag as bool?;
if (IsReadOnly != null)
{
e.Cancel = IsReadOnly.Value;
}
}
答案 1 :(得分:0)
据我所知,这是不可能的。但你可以自己模仿它:
将节点颜色更改为灰色:
treeControl.Nodes[0].ForeColor = Color.Gray;
抓住点击事件:
private void treeControl_AfterCheck(TreeControl tc,
NodeEventArgs e)
{
if(e.Node.ForeColor == Color.Gray)
e.Node.Checked = !e.Node.Checked;
}