vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück
Rubrik: Controls · Sonstiges   |   VB-Versionen: VB4, VB5, VB626.10.01
TabStrip Control im Griff

Das Beispiel zeigt, wie man mit einem kleinen Trick den einzelnen Registerkarten die gewünschten Steuerelemente zuweisen kann.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  31.659 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Die Windows Common Controls beinhalten u.a. auch ein Registerkarten-Steuerelement - das TabStrip-Control. Man plaziert es auf die Form und legt über den Eigenschaften-Dialog komfortabel das Aussehen, die Verhaltensweise, und natürlich die benötigten Registerkarten mit ihren Bezeichnern fest.

Wie bekommt man aber nun die benötigten Steuerelemente in die einzelnen Register?

Zur Entwurfszeit lassen sich die Registerkarten ja nicht öffnen. Desweiteren lässt sich das TabStrip-Control auch nicht als Container für andere Steuerelemente verwenden. Also alles nur eine optische Täuschung?

Nein! Dieser Tipp zeigt, wie man gekonnt den einzelnen Registerkarten alle benötigten Steuerelemente zuordnen kann. Für jede Registerkarte wird ein Picture-Steuerelement benötigt, welches als Container für die einzelnen Steuerelemente dient. Am einfachsten ist es, wenn mann ein Steuerelementfeld erstellt, also Picture1(0) (Picture1 mit Index=0), Picture1(1) (Picture1 mit Index=1) usw. - je nachdem wieviele Registerkarten angezeigt werden sollen.

Per Programmcode "blendet" man dann immer nur eine PictureBox ein (Visible = True), je nachdem welche Registerkarte gerade aktiv ist.

Wichtig für den nachfolgenden Code: Die erste PictureBox muss zur Design-Zeit korrekt über das TabStrip-Control plaziert werden!

Private Sub Form_Load()
  Dim I As Integer
 
  ' Registerkarten positionieren
  With Picture1(0)
    For I = 1 To Picture1.UBound
      Picture1(I).Move .Left, .Top, .Width, .Height
    Next I
  End With
 
  ' 1. Registerkarte öffnen
  SetTabStrip 1
End Sub
 
' Registerkarten-Inhalt anzeigen
Private Sub SetTabStrip(ByVal nTab As Integer)
  Dim I As Integer
  Dim Result As Integer
 
  With TabStrip1  
    Result = False
    If Not .SelectedItem Is Nothing Then _
      Result = (.SelectedItem.Index = nTab)
 
    ' Wenn gewünschte Registerkarte noch nicht geöffnet
    ' ist, dann jetzt nachholen
    If Not Result Then
      DoEvents
      .SelectedItem = .Tabs(nTab)
      .Refresh
      DoEvents
    End If
 
    ' PictureBox ein/ausblenden
    For I = 0 To Picture1.UBound
      Picture1(I).Visible = (I = nTab - 1)
    Next I
    Picture1(nTab - 1).ZOrder 0
    DoEvents
 
    ' Fokus auf das erste Element setzen
    On Local Error Resume Next
    Picture1(nTab - 1).SetFocus
    SendKeys "{TAB}", True
    On Local Error GoTo 0
  End With
End Sub
 
' Klick auf Registerkarte
Private Sub TabStrip1_Click()
  With TabStrip1
    If Not .SelectedItem Is Nothing Then
      SetTabStrip .SelectedItem.Index
    End If
  End With
End Sub

Noch ein Hinweis:
Es kann ja durchaus sein, dass sich die einzelnen PictureBoxen zur Entwurfszeit überlagern (evtl. aufgrund ihrer Größe oder aber weil die PictureBoxen bereits exakt übereinander positioniert sind). Klickt man nun auf eine dieser PictureBoxen (oder wählt diese im Eigenschaften-Fenster aus), so erscheint diese evtl. nicht oder nicht vollständig. Über die Tatenkombination Strg+J lässt sich aber dann die gerade ausgewählte PictureBox in den Vordergrund bringen.
 

Dieser Tipp wurde bereits 31.659 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel