현재 기존 프로젝트들 때문에 닷넷 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"]);
}
}