Hab schon gecheckt wie das geht.
Danke für alle Mühen.
Falls noch wer dieses Problem hat, ich habe es wie folgt gelöst:
Private Sub TabStrip1_Click()
If TabStrip1.SelectedItem.Index = 1 Then
Frame1.Visible = True
Frame2.Visible = False
ElseIf TabStrip1.SelectedItem.Index = 2 Then
Frame1.Visible = False
Frame2.Visible = True
End If
End Sub
Ist natürlich auf eine beliebige Anzahl von Frames erweiterbar
Private Sub TabStrip1_Click()
If TabStrip1.SelectedItem.Index = 1 Then
Frame1.Visible = True
Frame2.Visible = False
ElseIf TabStrip1.SelectedItem.Index = 2 Then
Frame1.Visible = False
Frame2.Visible = True
End If
End Sub
Wenn es mehrere Frames sind, solltest Du Prüfen, ob folgender (ungeprüfter da im Browser geschriebener) Code nicht einsetzbar ist.
Mein Lösungsansatz setzt allerdings indexierte Frames vorraus, spart die aber die ganzen elseif’s.
Zudem verlängert sich dein Code pro auswählbarem Item um 3 Zeilen, mein Lösungsvorschlag bleibt gleichlang.
Funkt so aber nur wenn die Auswahl von Item x bedeutet, das Frame x sichtbar und alle anderen unsichtbar sein sollen.
For i = [erstesItem] to [letztesItem] 'Zahlen einsetzen :wink:
Frame(TabStrip1.SelectedItem.Index).visible = true
if i TabStrip1.SelectedItem.Index then
Frame(i).visible = false
endif
next i
Ich verwende aber pro Registerkarte auch mehrere Frames und kann deinen Lösungsansatz deshalb nicht verwenden
Du kannst den anderen Frames aber einen anderen Namen verpassen und trotzdem den selben Index benutzen. Du bräuchtest nocht nicht einmal eine ForNext-Schleife, wenn Du statt der Visible-Eigenschaft die ZOrder-Eigenschaft für die obersten Frames auf 0 setzt.
Ungefähr so:
Private Sub TabStrip1\_Click()
Frame1(TabStrip1.SelectedItem.Index - 1).ZOrder 0
Frame1(TabStrip1.SelectedItem.Index - 1).ZOrder 0
End Sub