Como: desabilitar guia páginas

Em algumas ocasiões, convém restringir o acesso a dados estão disponível no seu aplicativo Windows Forms.Um exemplo disso pode ser quando você tiver dados exibidos nas páginas de guia de um controle guia; os administradores poderiam ter informações em uma página da guia que você gostaria de impedir que convidados ou usuários de nível inferior.

Para desabilitar páginas de guia programaticamente

  1. Escrever o código para tratar SelectedIndexChanged evento. Este é o evento é disparado quando o usuário alterna de uma guia para a próxima.

  2. Verificar as credenciais.Dependendo das informações apresentadas, convém verificar o usuário tiver feito logon com o nome de usuário ou alguma Outros forma de credenciais antes de permitir que o usuário a exibir a guia.

  3. Se o usuário possui credenciais apropriadas, exiba a guia que foi clicada.Se o usuário não tiver as credenciais apropriadas, exibir uma caixa de mensagem ou alguma Outros interface do usuário, indicando que eles não tem privilégios de acesso e conjunto Ativado propriedade false.

    Observação:

    Ao implementar essa funcionalidade em seus aplicativos de produção, você pode executar esta verificação de credencial durante o formulário Evento Load.Isso permitirá que você desabilitar a guia antes de qualquer interface de usuário for exibida, que é uma abordagem muito mais limpa à programação.A metodologia usada abaixo (verificação de credenciais e desativar a guia durante o SelectedIndexChanged evento) é para fins ilustrativos.

  4. Opcionalmente, se você tiver mais de duas páginas de guia, exiba uma página da guia diferente do original.

    No exemplo abaixo, um CheckBox controle é usado no lugar de verificação de credenciais, sistema autônomo sistema autônomo critérios para acesso à guia irão variar por aplicativo. Quando o SelectedIndexChanged evento é gerado se a verificação de credencial for verdadeira (ou seja, a caixa de seleção estiver marcada) e é a guia selecionada TabPage2 (a guia com as informações confidenciais, neste exemplo), em seguida, TabPage2 é exibida. Caso contrário, TabPage3 é exibida e uma caixa de mensagem é mostrada ao usuário, indicando que não tinha privilégios de acesso apropriados. O código a seguir supõe que um formulário com um CheckBox controlar)CredentialCheck) e um TabControl controle com três páginas de guia.

    Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
       ' Check Credentials Here
    
       If CredentialCheck.Checked = True And _ 
       TabControl1.SelectedTab Is TabPage2 Then
          TabControl1.SelectedTab = TabPage2
       ElseIf CredentialCheck.Checked = False _ 
       And TabControl1.SelectedTab Is TabPage2 Then
          MessageBox.Show _ 
         ("Unable to load tab. You have insufficient access privileges.")
          TabControl1.SelectedTab = TabPage3
       End If
    End Sub
    
    private void tabControl1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
        // Check Credentials Here
    
        if ((CredentialCheck.Checked = true) & (tabControl1.SelectedTab == tabPage2)) 
        {
            tabControl1.SelectedTab = tabPage2;
        }
        else if ((CredentialCheck.Checked = false) & (tabControl1.SelectedTab == tabPage2))
        {
            MessageBox.Show("Unable to load tab. You have insufficient access privileges.");
            tabControl1.SelectedTab = tabPage3;
        }
    }
    
    private:
       System::Void tabControl1_SelectedIndexChanged(
          System::Object ^ sender,
          System::EventArgs ^  e)
       {
          // Check Credentials Here
          if ((CredentialCheck->Checked == true) &
              (tabControl1->SelectedTab == tabPage2))
          {
             tabControl1->SelectedTab = tabPage2;
          }
          else if ((CredentialCheck->Checked == false) &
                   (tabControl1->SelectedTab == tabPage2))
          {
             MessageBox::Show(String::Concat("Unable to load tab. ",
                "You have insufficient access privileges."));
             tabControl1->SelectedTab = tabPage3;
          }
       }
    

    (Translation from VPE for Csharp visual, Visual C++) Coloque o código a seguir no construtor do formulário para registrar o manipulador de eventos.

    this.tabControl1.SelectedIndexChanged += 
       new System.EventHandler(this.tabControl1_SelectedIndexChanged);
    
    this->tabControl1->SelectedIndexChanged +=
       gcnew System::EventHandler(this, &Form1::tabControl1_SelectedIndexChanged);
    

Consulte também

Tarefas

Como: Adicionar um controle a uma página da guia

Como: Adicionar e remover guias com o Windows Forms TabControl

Como: Alterar a aparência do Windows Forms TabControl

Referência

TabControl controle visão geral (Windows Forms)