【问题标题】:How to disable tree list rows to be selected in devexpress如何禁用要在 devexpress 中选择的树列表行
【发布时间】:2020-05-19 06:24:57
【问题描述】:

我已经创建了一个树列表来显示内存的扇区和块,现在我需要禁用根节点的选择,还需要禁用已经被占用的块的行,以便只能选择启用行从树列表中。

此外,禁用的行文本更轻,便于用户区分。

这里我附上一张示例图片以供参考,我需要实现的目标

【问题讨论】:

    标签: devexpress devexpress-windows-ui treelist


    【解决方案1】:

    您是否考虑过使用TreeList.ShowingEditor 事件? 像这样的:

    void mytreelist_ShowingEditor(object sender, CancelEventArgs e) {  
       if(mytreelist.FocusedNode.Level == 0 /* root */ || SomeOtherCriteria()) 
       {
          e.Cancel = true;  
       }  
     }
    

    您可以处理TreeList.CustomDrawNodeCell 使一行显示为禁用:

    private void mytreelist_CustomDrawNodeCell(object sender, CustomDrawNodeCellEventArgs e) {
        if(e.Node.Level == 0 /* root */ || SomeOtherCriteria()) 
        {
          e.Appearance.ForeColor = Color.Gray;
        }  
    }
    

    【讨论】:

    • ShowingEditor 事件不会被调用,因为我的树视图控件对用户来说是不可编辑的
    • 将 Editable 和 ReadOnly 设置为 true。
    猜你喜欢
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    相关资源
    最近更新 更多