Einzelne TabPage sperren

Alphamännchen

Mitglied
Also ich habe mich diesbezüglich schon durch allerlei Seiten im Internet gewühlt und die einzige Lösung die ich finden konnte war die, beim Event "SelectedIndexChanged" abzufangen, ob der User gewünschte TabPage ansehen darf (dann mache nichts) oder halt nicht (dann tabPage1.SelectedIndex = <Seite woher er kam>).

Aber diese Möglichkeit ist nicht richtig befriedigend, da die ZielTabPage trotzdem ganz kurz angezeigt wird, bevor der Wechsel zurück erfolgt.

Gibt es also eine Möglichkeit diesen Wechsel abzufangen, indem man das Event "SelectedIndexChanged" abfängt, bevor die Seite gewechselt wird, oder kann man das ganze ganz anders machen, denn einzelne TabPages zu disablen geht nicht , nur die gesamte TabControl und das hilft mir nicht wirklich weiter.

Bin mal gespannt ...
 
Servus,

also ich mach das so:

Wenn ich das Prog starte prüf ich im Form_Load ob der User die Rechte für die Seite hat. Wenn nein, dann mach ich das "panel", welches auf der zu sperrenden TabPage ist, unsichtbar ( panel.Visible = false; ). Also auf meinem panel befinden sich alle Buttons und so....

Sobald ich die Seite anwählen will passiert folgendes:

Code:
private void tabControl_SelectedIndexChanged(object sender, System.EventArgs e)
{
	if (tabControl.SelectedTab == tabPageRestricted)
	{
		tabControl.SelectedTab = tabPageMain;
		MessageBox.Show("Sie haben nicht die nötigen Rechte um diese Seite anzuzeigen");
	}
}


Und in diesem Bruchteil, wo er die Seite sehen kann wird er nur noch eine graues Fenster sehen :-) :-) :-)


Gruß

x3non
 
Zurück