컬렉션에 추가 Controls.Add(treeList); AddTreeListColumn ( treeList, GetTreeListColumn("Name", "Name", UnboundColumnType.String, 200, HorzAlignment.Near, false, FormatType.None, null, 0) "> 컬렉션에 추가 Controls.Add(treeList); AddTreeListColumn ( treeList, GetTreeListColumn("Name", "Name", UnboundColumnType.String, 200, HorzAlignment.Near, false, FormatType.None, null, 0) "> 컬렉션에 추가 Controls.Add(treeList); AddTreeListColumn ( treeList, GetTreeListColumn("Name", "Name", UnboundColumnType.String, 200, HorzAlignment.Near, false, FormatType.None, null, 0) ">
private TreeList treeList = null;
        public vGridTest2()
        {
            InitializeComponent();
           
        }

        private void vGridTest2_Load(object sender, EventArgs e)
        {
            this.treeList = new DevExpress.XtraTreeList.TreeList();

            treeList.Appearance.Row.Font = new System.Drawing.Font("고딕", 12f);

            BeginInitialize(treeList);

            SetTreeList(this.treeList, "treeList", false, false, false, false, false, false, false, false, true, false);

            treeList.Dock = DockStyle.Right;

            //노드의 검사 상태가 최종 사용자에 의해 변경된 후에 발생합니다.
            treeList.AfterCheckNode += treeList_AfterCheckNode;

            // 컨트롤에 포함된 컨트롤의 컬렉션을 가져옵니다.
            // Add(treeList) -> 컬렉션에 추가
            Controls.Add(treeList);

            AddTreeListColumn
            (
                treeList,
                GetTreeListColumn("Name", "Name", UnboundColumnType.String, 200, HorzAlignment.Near, false, FormatType.None, null, 0)
            );
            AddTreeListColumn
            (
                treeList,
                GetTreeListColumn("Score", "Score", UnboundColumnType.Integer, 100, HorzAlignment.Far, false, FormatType.Numeric, "#,##0", 0)
            );

            EndInitialize(this.treeList);

            AddData(this.treeList);
        }
				/// <summary>
        /// 초기화 시작하기
        /// </summary>
        /// <param name="treeList">트리 리스트</param>
        private void BeginInitialize(TreeList treeList)
        {
            // 을 사용하면 컨트롤이 여러 속성 할당을 최적화할 수 있습니다.
            // 따라서 디자인 타임에 공동 종속 속성을 초기화하거나 여러 속성을 일괄 설정할 수 있습니다.
            ((ISupportInitialize)treeList).BeginInit();
            // Beginlnit 호출하여 초기화가 시작 중임을 개체에 알릴 수 있습니다.
            // EndInit 호출하여 초기화가 완료되었음을 알릴 수 있습니다.
        }
				/// <summary>
        /// 초기화 종료하기
        /// </summary>
        /// <param name="treeList">트리 리스트</param>
        private void EndInitialize(TreeList treeList)
        {
            ((ISupportInitialize)treeList).EndInit();
        }
        /// <summary>
        /// 트리 리스트 설정하기
        /// </summary>
        /// <param name="name">명칭</param>
        /// <param name="showColumns">컬럼 표시 여부</param>
        /// <param name="enableColumnMenu">컬럼 메뉴 활성화 여부</param>
        /// <param name="autoWidth">자동 너비 여부</param>
        /// <param name="showIndicator">지시가 표시 여부</param>
        /// <param name="showHorzLines">수평선 표시 여부</param>
        /// <param name="showVertLines">수직선 표시 여부</param>
        /// <param name="showFocusedFrame">포커스 프레임 표시 여부</param>
        /// <param name="enableAppearanceFocusedCell">포커스 셀 모양 활성화 여부</param>
        /// <param name="invertSelection">선택 반전 여부</param>
        private void SetTreeList(TreeList treeList, string name, bool showColumns, bool enableColumnMenu, bool autoWidth
            , bool showIndicator, bool showHorzLines, bool showVertLines, bool showFocusedFrame, bool enableAppearanceFocusedCell
            , bool invertSelection, bool editable)
        {
            treeList.Name = name;                                                                       
            treeList.OptionsView.ShowColumns = showColumns;                                             
            treeList.OptionsMenu.EnableColumnMenu = enableColumnMenu;                                   
            treeList.OptionsView.AutoWidth = autoWidth;                                                 
            treeList.OptionsView.ShowIndicator = showIndicator;                                         
            treeList.OptionsView.ShowHorzLines = showHorzLines;                                         
            treeList.OptionsView.ShowVertLines = showVertLines;                                         
            treeList.OptionsSelection.EnableAppearanceFocusedCell = enableAppearanceFocusedCell;        
            treeList.OptionsSelection.InvertSelection = invertSelection;                                
            treeList.OptionsBehavior.Editable = editable;                                               
        }
				/// <summary>
        /// 트리 리스트 노드 체크 후 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void treeList_AfterCheckNode(object sender, NodeEventArgs e)
        {
            treeList.AfterCheckNode -= treeList_AfterCheckNode;

            TreeListNode treeListNode = e.Node;

            SetChecked(treeListNode, treeListNode.Checked);

            treeList.AfterCheckNode += treeList_AfterCheckNode;
        }

        /// <summary>
        /// 체크 설정하기
        /// </summary>
        /// <param name="parentNode">부모 노드</param>
        /// <param name="isChecked">체크 여부</param>
        private void SetChecked(TreeListNode parentNode, bool isChecked)
        {
            if (parentNode.Nodes.Count == 0)
            {
                return;
            }

            for (int i = 0; i < parentNode.Nodes.Count; i++)
            {
                parentNode.Nodes[i].Checked = isChecked;

                SetChecked(parentNode.Nodes[i], isChecked);
            }
        }
				/// <summary>
        /// 트리 리스트 컬럼 추가하기
        /// </summary>
        /// <param name="treeList">트리 리스트</param>
        /// <param name="treeListColumnArray">트리 리스트 컬럼 배열</param>
        private void AddTreeListColumn(TreeList treeList, TreeListColumn[] treeListColumnArray)
        {
            treeList.Columns.AddRange(treeListColumnArray);
        }
        /// <summary>
        /// 트리 리스트 컬럼 추가하기
        /// </summary>
        /// <param name="treeList">트리 리스트</param>
        /// <param name="treeListColumn">트리 리스트 컬럼</param>
        private void AddTreeListColumn(TreeList treeList, TreeListColumn treeListColumn)
        {
            AddTreeListColumn(treeList, new TreeListColumn[] { treeListColumn });
        }

        /// <summary>
        /// 트리 리스트 컬럼 구하기
        /// </summary>
        /// <param name="caption">제목</param>
        /// <param name="fieldName">필드명</param>
        /// <param name="unboundColumnType">언바운드 컬럼 종류</param>
        /// <param name="width">너비</param>
        /// <param name="horzAlignment">수평 정렬</param>
        /// <param name="allowEdit">편집 허용 여부</param>
        /// <param name="formatType">형식 종류</param>
        /// <param name="formatString">형식 문자열</param>
        /// <param name="visibleIndex">표시 인덱스</param>
        /// <returns>트리 리스트 컬럼 구하기</returns>
        private TreeListColumn GetTreeListColumn(string caption, string fieldName, UnboundColumnType unboundColumnType, int width,
            HorzAlignment horzAlignment, bool allowEdit, FormatType formatType, string formatString, int visibleIndex)
        {
            TreeListColumn treeListColumn = new TreeListColumn();

            treeListColumn.Name = string.Empty;
            treeListColumn.Caption = caption;
            treeListColumn.FieldName = fieldName;
            treeListColumn.Width = width;
            treeListColumn.AppearanceHeader.Options.UseTextOptions = true;
            treeListColumn.AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
            treeListColumn.AppearanceCell.Options.UseTextOptions = true;
            treeListColumn.AppearanceCell.TextOptions.HAlignment = horzAlignment;
            treeListColumn.OptionsColumn.AllowEdit = allowEdit;
            treeListColumn.Format.FormatType = formatType;
            treeListColumn.Format.FormatString = formatString;
            treeListColumn.VisibleIndex = visibleIndex;
            treeListColumn.Visible = true;

            return treeListColumn;
        }
				/// <summary>
        /// 데이타 추가하기
        /// </summary>
        /// <param name="treeList">트리 리스트</param>
        private void AddData(TreeList treeList)
        {
            treeList.BeginUnboundLoad();

            TreeListNode codeNode = AddTreeListNode(treeList, null, new object[] { "Code", 100 });
            TreeListNode documentsNode = AddTreeListNode(treeList, null, new object[] { "Documents", 50 });
            TreeListNode videoNode = AddTreeListNode(treeList, null, new object[] { "Videos", 75 });

            AddTreeListNode(treeList, codeNode, new object[] { "Data layer", 10 });
            AddTreeListNode(treeList, codeNode, new object[] { "Business layer", 20 });
            AddTreeListNode(treeList, codeNode, new object[] { "Windows application", 30 });

            AddTreeListNode(treeList, documentsNode, new object[] { "Project scope", 50 });
            AddTreeListNode(treeList, documentsNode, new object[] { "Work log", 70 });

            AddTreeListNode(treeList, videoNode, new object[] { "Intro & summary", 10 });
            AddTreeListNode(treeList, videoNode, new object[] { "Architecture walkthrough", 20 });
            AddTreeListNode(treeList, videoNode, new object[] { "Project design", 30 });
            AddTreeListNode(treeList, videoNode, new object[] { "Code review", 50 });

            treeList.EndUnboundLoad();

            treeList.ExpandAll();

            treeList.SetFocusedNode(videoNode);
        }
				/// <summary>
        /// 트리 리스트 노드 추가하기
        /// </summary>
        /// <param name="treeList">트리 리스트</param>
        /// <param name="parentTreeListNode">부모 트리 리스트 노드</param>
        /// <param name="checkState">체크 상태</param>
        /// <param name="value">값</param>
        /// <param name="tag">태그</param>
        /// <returns>트리 리스트 노드</returns>
        private TreeListNode AddTreeListNode(TreeList treeList, TreeListNode parentTreeListNode, CheckState checkState, object value, object tag)
        {
            TreeListNode treeListNode = treeList.AppendNode(value, parentTreeListNode, checkState);

            treeListNode.Tag = tag;

            return treeListNode;
        }

				private TreeListNode AddTreeListNode(TreeList treeList, TreeListNode parentTreeListNode, CheckState checkState, object value)
        {
            return AddTreeListNode(treeList, parentTreeListNode, CheckState.Unchecked, value, null);
        }

        /// <summary>
        /// 트리 리스트 노드 추가하기
        /// </summary>
        /// <param name="treeList">트리 리스트</param>
        /// <param name="parentTreeListNode">부모 트리 리스트 노드</param>
        /// <param name="value">값</param>
        /// <returns>트리 리스트 노드</returns>
        private TreeListNode AddTreeListNode(TreeList treeList, TreeListNode parentTreeListNode, object value)
        {
            return AddTreeListNode(treeList, parentTreeListNode, CheckState.Unchecked, value, null);
        }

결과 화면의VGridControl

Untitled