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
Escrever o código para tratar SelectedIndexChanged evento. Este é o evento é disparado quando o usuário alterna de uma guia para a próxima.
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.
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.
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