Como: Desativar as páginas de guia
Em algumas ocasiões, você deseja restringir o acesso a dados que estão disponíveis 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 de guia que você deseja impedir que usuários de nível inferior ou de convidado.
Para desabilitar a páginas de guia programaticamente
Escrever código para manipular o controle de guia SelectedIndexChanged de evento. Este é o evento que é gerado quando o usuário alterna de uma guia para a próxima.
Verificar as credenciais. Dependendo das informações apresentadas, convém verificar se o usuário fez logon com o nome de usuário ou alguma outra forma de credenciais antes de permitir que o usuário exibir a guia.
Se o usuário tiver as 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 outra interface do usuário indicando que eles não têm acesso e retornar à guia inicial.
Observação Quando você implementar essa funcionalidade em seus aplicativos de produção, você pode executar essa verificação de credencial durante o formulário Load de evento. Isso permitirá que você oculte a guia antes de qualquer interface do usuário é exibido, o que é uma abordagem muito mais limpa à programação. A metodologia usada abaixo (verificação de credenciais e desativando a guia durante o SelectedIndexChanged evento) é para fins ilustrativos.
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, como os critérios para o acesso à guia irá variar por aplicativo. Quando o SelectedIndexChanged evento é gerado se a verificação de credencial é verdadeira (ou seja, a caixa de seleção está marcada) e a guia selecionada é TabPage2 (guia com as informações confidenciais, neste exemplo), em seguida, TabPage2 é exibido. Caso contrário, TabPage3 é exibida e uma caixa de mensagem é mostrada ao usuário, indicando que não tivessem privilégios de acesso apropriados. O código a seguir supõe um formulário com um CheckBox control (CredentialCheck) e um TabControl o 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; } }
(Visual C#, Visual C++) Coloque o seguinte código 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