您的位置:首页 > 其它

DevExpress 下TreeList下的节点复选框的显隐设置

2017-11-24 16:11 567 查看

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(0, 0);
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(263, 207);
pTreeList.TabIndex = 0;
pTreeList.AfterCheckNode += pTreeList_AfterCheckNode;
pTreeList.CustomDrawNodeCheckBox += pTreeList_CustomDrawNodeCheckBox; //进行显隐实现
//
// treeListColumn1
//
treeListColumn1.Caption = "treeListColumn1";
treeListColumn1.FieldName = "Name";
treeListColumn1.MinWidth = 32;
treeListColumn1.Name = "treeListColumn1";
treeListColumn1.Visible = true;
treeListColumn1.VisibleIndex = 0;

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息