2013-10-11 3 views
0

기본 양식의 간단한 표시/숨기기 기능으로 고민하고 있습니다. 와 탭을 표시해야합니다, 누군가가 로그온 한 순간 내 기본 양식에서 TabPage 숨기기 문제

  • ,

    1. 내가 아무도 탭 페이지는 퀘스 트 로그에서 사라질합니다, 로그인하지 않았다 내 응용 프로그램을 시작하는 경우 : 나는 다른 허가를 통해 작업 할 필요 그들의 각각의 허가.

    나는 this thread에서 답변을 찾았지만 적용하려고했지만 뭔가 놓친 것 같습니다.

    함수의 내 코드는이 코드에 따라

    public void TabPage1Permission(frmMain formMain, profile myProfile) 
    { 
        if (myProfile.Equals(profile.Visitor)) 
        { 
         formMain.tabPage1.Enabled = false; 
         formMain.tabPage1.Visible = false; 
        } 
        else 
        { 
         formMain.tabPage1.Enabled = true; 
         formMain.tabPage1.Visible = true; 
        } 
    } 
    

    이다 프로파일이 세 값하는 값만 '방문자'에없는 함께 열거가

    • TabPage1을 볼 수 있습니다.

      public enum profile {Visitor = 0, Administrator = 1, Editor = 2};

    • 표시되는 기능은 기본 양식의 시작 코드에서 호출됩니다.

    • 이 기능은 내 응용 프로그램의 요구 사항에 따라 허가를 관리하는 데 사용하는 기본 양식과 다른 클래스입니다.
    • 메인 폼 안의 모든 구성 요소에서 수식어를 변경하여 폼의 주 코드 클래스에서 사용할 수 있습니다.
  • +1

    해당 이미지를 여기에 .... .... 및 디버그 코드 .... – Aravind

    +0

    시간 간격과 함께 스레딩 개념을 사용하십시오 .. 및 사용하여 함수 호출 스레드의. –

    +0

    @AravindSrinivas 기본 양식에 대해 언급합니까? 코드가 디버깅되고 잘 실행되지만 프로그램이 내 tabPage를 예상대로 숨기지 않습니다. –

    답변

    1

    편집 : @KingKing의 의견에 덕분에, 나는 this other thread에서 다른 옵션을 발견하고 다음과 같이 나는 그것을 적응이와

    public void TabPage1Permission(frmMain formMain, profile myProfile, int index) 
    { 
        if (myProfile.Equals(profile.Visitor)) 
        { 
         formMain.tabControl.TabPages.Remove(formMain.TabPage1); 
        } 
        else 
        { 
         formMain.tabControl.TabPages.Insert(index, formMain.TabPage1); 
        } 
    } 
    

    나는 사용자가 방문자가 있는지 확인 또는 다음 탭 또는 내 기본 TabControl 표시하지

    +1

    이것은 ** 특정 케이스 **에서 사용할 수 있지만 ** 일반적인 경우 **에서 ** 우리가 ** TabPage의 주문 **을 유지하고자 할 때 사용할 수 없습니다. 지정된 인덱스의 탭 페이지를 * 표시 *하기 위해'Add '대신에'Insert' 메소드를보고 싶습니다. –