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
É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.
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.
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.
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
.NET Desktop feedback
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour