본문 바로가기
C#/DevExpress

[C# DevExpress]DockManager, DocumentManager

by 샤나엘 2018. 4. 10.
반응형


아래와 같은 형태의 Tab형태의 DockPanel을 생성하는 방법에 대한 예제입니다.

 

가장 중요한 부분은 사용자 정의 컨트롤에 DocumentManager, DockManager을 추가시키고,

DockPanel을 생성할 때 DockedAsTabbedDocument 속성을 true로 설정하는 것입니다.

 

 

 

1. WinForm에 LayOutControl을 추가해서 아래와 같은 모양으로 만듭니다.

 

 

 

2. 위 공간에는 Button을 추가하고, 아래 공간에는 Panel을 추가해서 Fill 도킹 시킵니다.

 

 

3. 사용자 정의 컨트롤을 하나 추가합니다.

 

 

4. 사용자 정의 컨트롤에 DocumentManager, DockManager을 추가시킵니다.

 

 



5. 소스코드를 아래와 같이 작성합니다.

   빨간색으로 표시된 코드를 추가하면 됩니다.

 

[사용자 정의 컨트롤 소스]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars.Docking;
 
namespace DocumentManager
{
    public partial class MainView : UserControl
    {
        public DockManager DockManager
        {
            get { return this.dockManager1; }
        }
 
        public MainView()
        {
            InitializeComponent();
        }
    }
}

 

[Form1 소스]

소스설명 :

- Form이 생성될 때 사용자 정의 컨트롤을 하나 추가하고, panel에 추가시킵니다.

- 버튼을 클릭할 때 DockPanel을 생성해서 추가합니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars.Docking;
 
namespace DocumentManager
{
    public partial class Form1 : Form
    {
        MainView mainView;
 
        public Form1()
        {
            InitializeComponent();
 
            mainView = new MainView();
            mainView.Dock = DockStyle.Fill;
            this.panel1.Controls.Add(mainView);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            DockPanel dockPanel = mainView.DockManager.AddPanel(DockingStyle.Float);
            dockPanel.DockedAsTabbedDocument = true;
            dockPanel.Text = string.Format("DockPanel{0}", mainView.DockManager.Panels.Count.ToString());
        }
    }
}

 

[실행화면]

- 버튼 1번 클릭

 

- 버튼 2번 클릭

 

- DockPanel2를 마우스로 드래그 하는 화면


반응형

댓글