Exemple #1
0
        /// <summary>
        /// 格式化TreeList样式和属性
        /// </summary>
        /// <param name="tree">TreeList</param>
        /// <param name="type"></param>
        /// <param name="showColumns">显示列头</param>
        /// <param name="showIndicator">显示指示列</param>
        public static void TreeFormat(TreeList tree, NodeIconType type = NodeIconType.General, bool showColumns = false, bool showIndicator = false)
        {
            // 使列标题文字居中显示
            foreach (TreeListColumn column in tree.Columns)
            {
                if (column.FieldName == "index")
                {
                    column.SortOrder = SortOrder.Ascending;
                }

                column.OptionsColumn.AllowSort = false;
                column.AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
            }

            // 格式化TreeList属性
            tree.BorderStyle               = BorderStyles.NoBorder;
            tree.KeyFieldName              = "id";
            tree.ParentFieldName           = "parentId";
            tree.OptionsBehavior.Editable  = false;
            tree.OptionsView.ShowColumns   = showColumns;
            tree.OptionsView.ShowIndicator = showIndicator;
            tree.OptionsView.ShowHorzLines = false;
            tree.OptionsView.ShowVertLines = false;
            tree.RowHeight            = 23;
            tree.VertScrollVisibility = DevExpress.XtraTreeList.ScrollVisibility.Always;

            CustomDrawNodeImages(tree, type);
        }
Exemple #2
0
        /// <summary>
        /// 注册TreeList控件重绘节点图标事件
        /// </summary>
        /// <param name="tree">TreeList</param>
        /// <param name="type">图标类型</param>
        private static void CustomDrawNodeImages(TreeList tree, NodeIconType type)
        {
            tree.CustomDrawNodeImages += (sender, args) =>
            {
                switch (type)
                {
                case NodeIconType.General:
                    var node = args.Node;
                    args.SelectImageIndex = node.Level == 0 || node.HasChildren ? (node.Expanded ? 2 : 1) : 0;
                    break;

                case NodeIconType.Category:
                    args.SelectImageIndex = args.Node.Expanded ? 2 : 1;
                    break;

                case NodeIconType.NodeType:
                    args.SelectImageIndex = (int)args.Node.GetValue("nodeType");
                    break;

                case NodeIconType.Organization:
                    args.SelectImageIndex = (int)args.Node.GetValue("nodeType") - 1;
                    break;

                case NodeIconType.OnlyLevel0:
                    if (args.Node.Level > 0)
                    {
                        return;
                    }

                    args.SelectImageIndex = (int)args.Node.GetValue("nodeType");
                    break;

                case NodeIconType.Custom:
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(type), type, null);
                }
            };
        }
Exemple #3
0
        /// <summary>
        /// 初始化TreeListLookUpEdit
        /// </summary>
        /// <param name="control">TreeListLookUpEdit</param>
        /// <param name="list">MemberSelect集合</param>
        /// <param name="type">图标类型</param>
        public static void InitTreeListLookUpEdit(TreeListLookUpEdit control, List <TreeLookUpMember> list, NodeIconType type = NodeIconType.General)
        {
            control.Properties.DataSource               = list;
            control.Properties.DisplayMember            = "name";
            control.Properties.ValueMember              = "id";
            control.Properties.PopupFormMinSize         = new Size(60, 0);
            control.Properties.TreeList.ParentFieldName = "parentId";

            TreeFormat(control.Properties.TreeList, type);
        }