Hoe tabbladen uitschakelen
In sommige gevallen wilt u de toegang beperken tot gegevens die beschikbaar zijn in uw Windows Forms-toepassing. Een voorbeeld hiervan kan zijn wanneer er gegevens worden weergegeven op de tabbladen van een tabbesturingselement; beheerders kunnen informatie hebben op een tabblad die u wilt beperken voor gastgebruikers of gebruikers op een lager niveau.
Tabbladpagina's programmatisch uitschakelen
Schrijf code om de SelectedIndexChanged gebeurtenis van de tabcontrole af te handelen. Dit is de gebeurtenis die wordt gegenereerd wanneer de gebruiker van het ene tabblad naar het volgende overschakelt.
Controleer de gegevens. Afhankelijk van de weergegeven informatie, kunt u de gebruikersnaam controleren waarmee de gebruiker zich heeft aangemeld of een andere vorm van referenties voordat de gebruiker het tabblad kan bekijken.
Als de gebruiker de juiste referenties heeft, geeft u het tabblad weer waarop is geklikt. Als de gebruiker niet over de juiste referenties beschikt, geeft u een berichtvak of een andere gebruikersinterface weer die aangeeft dat deze geen toegang heeft en gaat u terug naar het oorspronkelijke tabblad.
Notitie
Wanneer u deze functionaliteit in uw productietoepassingen implementeert, kunt u deze referentiecontrole uitvoeren tijdens de Load gebeurtenis van het formulier. Hiermee kunt u het tabblad verbergen voordat een gebruikersinterface wordt weergegeven. Dit is een veel schonere benadering van programmeren. De onderstaande methodologie (referenties controleren en het tabblad uitschakelen tijdens de SelectedIndexChanged gebeurtenis) is voor illustratieve doeleinden.
Als u meer dan twee tabbladen hebt, kunt u desgewenst een andere tabbladpagina weergeven dan het origineel.
In het onderstaande voorbeeld wordt een CheckBox-controle gebruikt als vervanging voor het controleren van de referenties, omdat de criteria voor toegang tot het tabblad per toepassing verschillen. Wanneer de SelectedIndexChanged gebeurtenis wordt gegenereerd en de referentiecontrole waar is (dat wil gezegd, is het selectievakje ingeschakeld) en het geselecteerde tabblad is
TabPage2
(het tabblad met de vertrouwelijke informatie in dit voorbeeld), wordtTabPage2
weergegeven. Anders wordtTabPage3
weergegeven en wordt er een berichtvak weergegeven aan de gebruiker, waarmee wordt aangegeven dat deze niet over de juiste toegangsbevoegdheden beschikt. In de onderstaande code wordt ervan uitgegaan dat er een formulier is met een besturingselement CheckBox (CredentialCheck
) en een TabControl-besturingselement met drie tabbladen.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++) Plaats de volgende code in de constructor van het formulier om de gebeurtenis-handler te registreren.
this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
this->tabControl1->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::tabControl1_SelectedIndexChanged);
Zie ook
- TabControl-besturingselement overzicht
- Procedure: Een controle-element toevoegen aan een tabblad
- Instructies: Tabbladen toevoegen en verwijderen met de TabControl- van Windows Forms
- Instructies: het uiterlijk van de TabControl- van Windows-formulieren wijzigen
.NET Desktop feedback