TreeList控件节点复选框的显隐
一、初始化TreeList
private TreeList InitTreeList()
{
TreeList pTreeList = new TreeList();
TreeListColumn treeListColumn1 = new TreeListColumn();
pTreeList.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] {
treeListColumn1});
pTreeList.Dock = System.Windows.Forms.DockStyle.Fill;
pTreeList.Location = new System.Drawing.Point(, );
pTreeList.Name = "pTreeList";
pTreeList.OptionsBehavior.Editable = false;
pTreeList.OptionsClipboard.AllowCopy = DevExpress.Utils.DefaultBoolean.True;
pTreeList.OptionsClipboard.CopyNodeHierarchy = DevExpress.Utils.DefaultBoolean.True;
pTreeList.OptionsNavigation.AutoMoveRowFocus = true;
pTreeList.OptionsView.ShowCheckBoxes = true; //此处设置是重点
pTreeList.OptionsView.ShowColumns = false;
pTreeList.OptionsView.ShowHorzLines = false;
pTreeList.OptionsView.ShowIndicator = false;
pTreeList.OptionsView.ShowVertLines = false;
pTreeList.Size = new System.Drawing.Size(, );
pTreeList.TabIndex = ;
pTreeList.AfterCheckNode += pTreeList_AfterCheckNode;
pTreeList.CustomDrawNodeCheckBox += pTreeList_CustomDrawNodeCheckBox; //进行显隐实现
//
// treeListColumn1
//
treeListColumn1.Caption = "treeListColumn1";
treeListColumn1.FieldName = "Name";
treeListColumn1.MinWidth = ;
treeListColumn1.Name = "treeListColumn1";
treeListColumn1.Visible = true;
treeListColumn1.VisibleIndex = ;
return pTreeList;
}
二、节点的显隐控制
private void pTreeList_CustomDrawNodeCheckBox(object sender, CustomDrawNodeCheckBoxEventArgs e)
{
HideCheckBox(n => !(n.Tag is CompareData || n.Tag is DataVersionInfo), e);
}
/// <summary>
///
/// </summary>
/// <param name="conditionHanlder">传递要隐藏的符合条件的Lambda表达式</param>
/// <param name="e"></param>
private void HideCheckBox(Predicate<TreeListNode> conditionHanlder, CustomDrawNodeCheckBoxEventArgs e)
{
if (conditionHanlder(e.Node))
{
e.Handled = true;
}
}