현재 기존 프로젝트들 때문에 닷넷 2.0 버전을 사용하고 있다.

그런데 닷넷 2.0 버전에는 TabPage.Visible 이 없더라.


하고 싶은 건 탭 페이지를 동적으로 움직이는 것인데 안되니 방법을 찾아야 한다.


탭콘트롤 두 개를 만들자.

프로그램 실행 시 보여야 할 콘트롤(Active)을 밑에다가 깔고

그 위에 디자이너 부분에서 작업할 콘트롤을 올린다. 


프로그램이 시작되면서 해당 폼이 뜨면, 

프로그램 실행 시 보여야 할 콘트롤(Active)에 대해서 BringToFront 함수와 dock = dock.Fill 속성을 주면서 앞으로 띄우고, 

보여주어야 할 탭페이지를 기존 작업하던 곳에서 옮겨 온다.


아래 소스를 보면 느낌이 올 것 같다. 

아래 소스는 화면이 수평 이분할로 되어있으며, 위의 데이터그리드뷰를 선택하면 해당 값에 따라 아래의 탭 페이지가 변하는 소스이다.


private void SetLicenseTab()

{

    if (dgvFontSW.CurrentRow == null)

    {

        tabControlActive.TabPages.RemoveByKey("tabLicense");

        return;

    }

 

    if (dgvFontSW.CurrentRow.Cells["LICENSE_TYPE"].Value.ToString() == "PE")

    {

        if (tabControl.TabPages.ContainsKey("tabLicense"))

            tabControlActive.TabPages.Add(tabControl.TabPages["tabLicense"]);

    }

    else

    {

        if (tabControlActive.TabPages.ContainsKey("tabLicense"))

            tabControl.TabPages.Add(tabControlActive.TabPages["tabLicense"]);

    }

}


Posted by motolies
,