본문 바로가기
개발 이야기/C# 이야기

C# TabControl 탭 디자인 변경하기

by 런던살자 2019. 6. 24.

안녕하세요 마블랑입니다.

 

C#에서 Tab기능을 사용할때 상용 라이브러리가 아니라면 기본적으로 제공하는 TabControl 클래스를 사용합니다.

 

TabControl은 기본적인 탭 기능은 정상적으로 동작이 되는데 디자인이 괜찮지가 않기도 하고 탭 위치를 변경하려고 할때 컨트롤 모양이 조금 깨지는것을 보았습니다. 

 

그래서 그러한 증상을 막기위해 직접 탭을 구현하는 방법에 대해서 알려드리겠습니다.

 

미리 말을하자면 탭은 감추고 버튼 컨트롤을 통해 탭기능을 추가하는 것입니다.

 

우선 메인폼에 TabControl 객체를 추가하시기 바랍니다.

 

동적으로 추가를 해도 상관없습니다. 

 

그리고 나서 TabControl의 속성창에서 아래와 같이 설정하시기 바랍니다. 

 

다른 항목을 설정하기전에 TabPages에 들어가서 탭 제목들을 모두 공백으로 바꿔주세요 

 

그리고 나서 다른 항목들을 수정하시기 바랍니다.

 

이렇게 하면 탭을 모두 숨길수가 있습니다.

 

 

여기까지 완료를 하였으면 버튼을 추가하고 각 탭 페이지를 고쳐주시기 바랍니다.

 

이제 코드 부분을 살펴보겠습니다.

using System;
using System.Windows.Forms;

namespace WindowsForms_Test_003_2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

        private void Bt_tabPage1_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedIndex = 0;
        }

        private void Bt_tabPage2_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedIndex = 1;
        }

        private void Bt_tabPage3_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedIndex = 2;
        }

        private void Bt_tabPage4_Click(object sender, EventArgs e)
        {
            tabControl1.SelectedIndex = 3;
        }
    }
}

 

버튼을 클릭했을때 해당 버튼마다 TabControl의 인덱스를 바꿔주었습니다.

 

프로세스를 실행하여 확인해보시면 정상적으로 동작하는 것을 확인할수 있습니다.

 

Tab을 모두 가려주었기 때문에 버튼을 통해서 탭 페이지를 변경해 주었습니다.

 

탭 페이지가 추가가 될때마다 버튼을 추가하고 약간의 설정을 해줘야하지만 이부분도 동적으로 처리하면 쉽게 할수 있을듯 합니다. 

 

 

이상 마블랑이었습니다.

 

읽어주셔서 고맙습니다.

댓글