Comment : désactiver les pages d'onglets

Dans certains cas, vous souhaiterez restreindre l’accès aux données disponibles dans votre application Windows Forms. Un exemple de ceci peut être lorsque vous avez des données affichées dans les pages d’onglet d’un contrôle onglet ; les administrateurs peuvent avoir des informations sur une page d’onglets que vous souhaitez restreindre des utilisateurs invités ou de niveau inférieur.

Pour désactiver les pages d’onglets par programmation

  1. Écrivez du code pour gérer l’événement du SelectedIndexChanged contrôle Tab. Il s’agit de l’événement déclenché lorsque l’utilisateur passe d’un onglet à l’autre.

  2. Vérifiez les informations d’identification. Selon les informations présentées, vous pouvez case activée le nom d’utilisateur avec lequel l’utilisateur s’est connecté ou une autre forme d’informations d’identification avant d’autoriser l’utilisateur à afficher l’onglet.

  3. Si l’utilisateur a les informations d’identification appropriées, affichez l’onglet sur lequel vous avez cliqué. Si l’utilisateur n’a pas d’informations d’identification appropriées, affichez une boîte de message ou une autre interface utilisateur indiquant qu’il n’a pas accès et revenez à l’onglet initial.

    Remarque

    Lorsque vous implémentez cette fonctionnalité dans vos applications de production, vous pouvez effectuer ces informations d’identification case activée pendant l’événement du Load formulaire. Cela vous permet de masquer l’onglet avant l’affichage d’une interface utilisateur, qui est une approche beaucoup propre er de la programmation. La méthodologie utilisée ci-dessous (case activée ing des informations d’identification et la désactivation de l’onglet pendant l’événementSelectedIndexChanged) est à des fins d’illustration.

  4. Si vous avez plus de deux pages d’onglets, affichez une page d’onglet différente de celle d’origine.

    Dans l’exemple ci-dessous, un CheckBox contrôle est utilisé au lieu de case activée les informations d’identification, car les critères d’accès à l’onglet varient selon l’application. Lorsque l’événement SelectedIndexChanged est déclenché, si les informations d’identification case activée sont vraies (autrement dit, la zone case activée est case activée ed) et que l’onglet sélectionné est TabPage2 (l’onglet avec les informations confidentielles, dans cet exemple), s’afficheTabPage2. Sinon, TabPage3 s’affiche et une boîte de message s’affiche à l’utilisateur, indiquant qu’il n’a pas les privilèges d’accès appropriés. Le code ci-dessous suppose un formulaire avec un CheckBox contrôle (CredentialCheck) et un TabControl contrôle avec trois pages d’onglets.

    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++) Placez le code suivant dans le constructeur du formulaire pour inscrire le gestionnaire d’événements.

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

Voir aussi