如何在XtratTreeList中有条件地禁用复选框? 我有NodeChanged和CustomDrawNodeCheckBox个事件。
如果我使用的treeList1_CustomDrawNodeCell
事件只给我一个节点。
即。
using DevExpress.XtraTreeList;
using DevExpress.Utils.Drawing;
using DevExpress.XtraEditors.ViewInfo;
//...
void treeList1_CustomDrawNodeCell(object sender, CustomDrawNodeCellEventArgs e) {
CheckEditViewInfo editViewInfo = e.EditViewInfo as CheckEditViewInfo;
if (editViewInfo == null)
return;
editViewInfo.CheckInfo.State = ObjectState.Disabled;
}
我有节点之间的关系。如果用户检查一个节点,则只允许检查/启用与该节点相关的节点。
答案 0 :(得分:1)
Devexpress没有直接的方法来做到这一点,所以,你需要做下面的事情:
要相应更改其外观,请处理CustomDrawNodeCheckBox event
private void treeList1_CustomDrawNodeCheckBox(object sender, CustomDrawNodeCheckBoxEventArgs e)
{
//Your condition
e.ObjectArgs.State = ObjectState.Disabled;
}
要阻止检查特定复选框,请处理BeforeCheckNode event
private void treeList1_BeforeCheckNode(object sender, CheckNodeEventArgs e)
{
//Your condition
e.CanCheck = false;
}
希望这个帮助;)