2010-04-26 1 views
4

것은 내가 '창에서 로그인'을 눌러 경우 로그인 버튼 또는 "철새"버튼을숨기기/C#에서 윈도우 양식을 사용하여 탭을 차단

을 누른 후 호출되는 'MainWindow를'가지고있다 로그인 버튼, 전체 시스템이 나올 것이며, VISITANT 버튼을 누르면 하나의 탭이 사라지거나 차단 될 것입니다. 난 attempt1을 사용하여 얻을

private void visitant(object sender, EventArgs e) 
{ 
     mainwindow menu = new mainwindow(); 
     menu.Show(); 

     //mainwindow.tabPage1.Enabled = false; //attempt1 
     //mainwindow.tabPage1.Visible = false; //attempt1 

     //System.Windows.Forms.tabPage1.Enabled = false;//attempt2 
     //System.Windows.Forms.tabPage1.Visible = false;//attempt2 

     this.Hide(); 
} 

오류는

오류 1 'System.mainwindow.tabPage1가'인해 개체 참조가 아닌 필요 2의 보안 레벨 '
오류에 액세스 할 정적 필드, 메서드 또는 속성 'System.mainwindow.tabPage1'

와 내가 attempt2를 사용하여 얻을 사람은

오류 1에 존재하지 않는 형식 또는 네임 스페이스 이름 'tabPage1'입니다 네임 스페이스 'System.Windows.Forms'(어셈블리 참조가 누락 되었습니까?)

아마도 "tabPage1"은 방문 버튼을 누르면 숨길 필요가 있다고 추측했기 때문입니다. 내가 어떤 자세한 내용은 생각할 수 없다

, 나는 사전에 어떤 추가 정보를

감사를 제공하기 위해 주위에있을 것입니다.

답변

3

양식에 추가하는 컨트롤은 기본적으로 공개되지 않습니다. 귀하의 "시도 1"코드는이 코드를 제외한 정확한 코드입니다.

(EDIT :Public 또는 InternaltabPage1의 "수정"속성을 변경, 이런 식으로 해결 -이 다른 클래스 형태 외부로부터 그 제어를 참조 할 수있다.)

을하지만,이 생성/양식을 보여 후

public void HideTab() 
{ 
    tabPage1.Enabled = false; 
    tabPage1.Visible = false; 
} 

그런 다음 샘플 코드에서 새로운 메소드를 호출 이러한 컨트롤을 볼 만드는 것보다 더 좋은 방법은, 당신의 mainwindow 클래스에 이런 일을 새 공용 메소드를 작성하는 것입니다 :

mainwindow menu = new mainwindow(); 
menu.Show(); 
menu.HideTab(); 
+0

예! 그것은 정확히 내가 hehe 필요 감사합니다 너무 많이 =] – Audel

0

다음, 당신이 tabControl1라는 tabPages에 대한 System.Windows.Forms.TabControl를 사용하고 사용하십시오 가정 :

tabControl1.TabPages.Remove(tabPage1); 

다시 tabPage1을 보려는 경우, 사용 :

tabControl1.TabPages.Add(tabPage1); 
+0

그의 문제를 해결하지 못합니다 - OP는 tabControl의 가시성과 관련하여 고민하고 있습니다. 사용법이 아니라 (첫 번째 시도가 거의 정확합니다). –

0

공용 속성을 선언하여 탭 컨트롤을 노출해야합니다. 그러면 인스턴스 인 menu을 사용하여 액세스 할 수 있습니다.

더 나은 옵션을 사용하면

public bool ShowTabPage1 { get; set; } 

같은 MainWindow를에 속성을 노출하고 마지막으로 MainWindow를 폼의로드 이벤트에 논리를 적용

private void visitant(object sender, EventArgs e) 
{ 
     mainwindow menu = new mainwindow(); 
     menu.ShowTabPage1 = false; 
     menu.Show();   

     this.Hide(); 
} 

으로 true 또는 false로 설정한다는 것이다.