Hallo,
ich habe ein Problem beim Erstellen eines Verwaltungsprogramms, und zwar habe ich eine DataGridView und einen Bereich wo in einer TabControl Informationen angezeigt werden.
Nun möchte ich dass beim Programmstart nur 1 Tab aktiv ist, die anderen sollen nicht anklickbar sein, also auf enabled false.
Die anderen Tabs sollen erst aktiv werden wenn ein Eintrag in der DataGridView angeklickt wurde.
Da ich noch neu in dieser Programmiersprache bin komme ich nicht weiter, habs auch schon mal mit "tabControl2.TabPages[1].Enabled = false;" probiert, aber das hat nicht funktionert.
Ich hoffe mir kann jemand helfen.
Das TabControl
(bzw. dessen TabPages
) unterstützen dies nicht. Es gibt zwar die Eigenschaft TabPage.Enabled, aber
Dieser Member hat für das genannte Steuerelement keine Bedeutung.
Vllt. hilft dir aber Vorgehensweise: Deaktivieren von Registerkartenseiten (How to: Disable Tab Pages)?
Okay. Magst auch sagen, wieso das nicht geklappt hat oder sollen wir raten? 🤔
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
für den Versuch habe ich eine boolean Variable "wert1=false" angelegt, die Methode sieht so aus:
private void tabControl2_SelectedIndexChanged(object sender, System.EventArgs e)
{
if(wert1 == true)
{
tabControl2.SelectedTab = tabPage2;
} else
{
tabControl2.SelectedTab = tabPage1;
}
}
Wenn ich keinen Eintrag von der DataGridView anklicke ist nur der 1. Tab aktiv und die anderen können nicht ausgewählt werden, das klappt soweit, nur sobald ich einen Eintrag anklicke und den
2. Tab anklicke kann ich nicht mehr zum 1. Tab zurück.
Vielleicht muss ich es mal mit mehreren if-Anweisungen probieren.
Die Logik ist ja dann auch falsch implementiert.
Nur wenn die boolsche Variable true
ist, darf TabPage2
(und die anderen) selektiert werden, während TabPage1
ja immer selektierbar sein soll - also den TabPage-Klick nur im anderen Fall rückgängig machen:
if (!wert1)
tabControl2.SelectedTab = tabPage1;
PS: Und packe deinen Code hier in C#-Tags (kannst auch nachträglich deinen Beitrag hier editieren).
Hättest du zwar auch ganz einfach selber finden könnnen, aber hier sollte dir geholfen werden:
Vorgehensweise: Deaktivieren von Registerkartenseiten
TIPP: Code nicht nur kopieren - Code muss man verstehen!
PS: Lustig, dass Microsoft selbst eine Variable mit == true prüft in diesem Beispiel...
Ich sehe jetzt erst, daß folgender Code in dem Beispiel völlig sinnlos ist (nicht nur die Abfrage auf true
):
if ((CredentialCheck.Checked == true) && (tabControl1.SelectedTab == tabPage2))
{
tabControl1.SelectedTab = tabPage2;
}
!!??