取消选中的节点一直处于选中状态
本文关键字:于选中 状态 一直 节点 取消 | 更新日期: 2023-09-27 18:14:20
我已经为我的TreeView控件创建了一个自定义处理程序:
public class TreeViewOnlyLeavesSelectable : TreeView
{
protected override void OnNodeMouseClick(TreeNodeMouseClickEventArgs e)
{
//base.OnNodeMouseClick(e);
if (e.Node.Nodes.Count == 0)
{
this.SelectedNode = null;
this.Refresh();
return;
}
}
}
问题是,它仍然选择非叶节点。我对它进行了调试,它正确地执行了if语句,但是在应用程序中节点仍然被选中。我做错了什么?
根据您的代码(e.Node.Nodes.Count == 0
),您只希望非叶子节点是可选择的。
根据你的描述("它仍然选择非叶节点"),你只希望叶节点是可选择的。
除此之外,考虑重写OnAfterSelect
。当使用键盘而不是鼠标时也是如此。
下面的代码只允许叶子节点是可选择的。
protected override void OnAfterSelect(TreeViewEventArgs e)
{
base.OnAfterSelect(e);
if (e.Node.Nodes.Count != 0)
{
this.SelectedNode = null;
}
}