mr-*_*uro 18 c# treeview visibility visual-studio
如何禁用特定节点,以便用户无法选择它.为用户隐藏它也是有效的.
我尝试了Visible属性,但隐藏了整个树(所有节点).我只想要一些节点被禁用/隐藏.
C#使用Visual Studio 2005 TreeNode编辑器.
Fre*_*örk 26
它TreeNode本身没有任何Enabled属性,因此您需要找到一些跟踪该状态的方法.一种方法是创建一个继承TreeNode并具有Enabled属性的新类.另一种方法是维护已禁用的树节点列表.
完成后,您可以使用它的ForeColor属性TreeNode使其显示为灰色(例如使用SystemColors.GrayText值).
最后,您可以使用该BeforeSelect事件来评估用户是否可以选择特定节点,并使用Cancel该事件中事件args 的属性来阻止在该节点被禁用时选择它:
private void TreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
e.Cancel = !NodeIsEnabled(e.Node);
}
Run Code Online (Sandbox Code Playgroud)
小智 10
我刚刚找到另一种处理禁用的treenodes的方法.如果您在不想使用的treenodes中显示灰色,则可以询问颜色并且不允许所有灰色节点.
private void TreeView_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
if(SystemColors.GrayText==e.Node.ForeColor)
e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21788 次 |
| 最近记录: |