본문 바로가기

C# Winform

C# Winform | TabControl / Modern Design UI - #2

by C기억저장소 2020. 11. 4.

C# Winform | TabControl / Modern Design UI - #2

 

C# Winform | TabControl / Modern Design UI - #1

 

C# Winform | TabControl / Modern Design UI - #1

Sample Image Contol 구조도 - 상속관계 Control Add Control 구분을 위해 Sample과 색이 조금 다를수 있습니다. 1. Panel 추가 - 최상위 부모 Panel (Parent Panel) - Properties 설정 Name : Tab_Back Anch..

program-day.tistory.com

 

위 링크에서 Component 작업을 완료하신 후에 진행하세요.

 

  Form Load Event

 

전역 변수 선언과 TebControl Page 지정

 

// 전역변수
private List<Label> menws;
private List<Color> menw_colors;
 
//Form - Load Event
private void TabTest_Load(object sender, EventArgs e)
{
    menws = new List<Label>();
    menws.Add(btn_Menu1);
    menws.Add(btn_Menu2);
    menws.Add(btn_Menu3);
 
    menw_colors = new List<Color>();
    menw_colors.Add(Color.FromArgb(53124225));
    menw_colors.Add(Color.DarkOrange);
    menw_colors.Add(Color.FromArgb(17770194));
 
    //시작 TabPage 설정
    Tab_Main.SelectedIndex = 0;
}
cs

 

  Menu Click Event

 

같은 TabPage가 아니면 지정한 Color로 해당 Menu의 색을 변경하고 Bar를 이동시킨다.

 

private void setMenuChgane(int index)
{
    if (Tab_Main.SelectedIndex != index)
    {
        menws[Tab_Main.SelectedIndex].ForeColor = Color.FromArgb(111111111);
        menws[index].ForeColor = menw_colors[index];
        Tab_Menu_Select_Bar.BackColor = menw_colors[index];
        Tab_Menu_Select_Bar.Location = new Point(menws[index].Location.X, 0);
        Tab_Main.SelectedIndex = index;
    }
}
 
private void btn_Menu1_Click(object sender, EventArgs e)
{
    setMenuChgane(0);
}
 
private void btn_Menu2_Click(object sender, EventArgs e)
{
    setMenuChgane(1);
}
 
private void btn_Menu3_Click(object sender, EventArgs e)
{
    setMenuChgane(2);
}
cs