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: Dieser Tipp wurde bereits 34.943 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (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. |
vb@rchiv CD Vol.6 ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Heinz Prelle Datei-Mehrfachauswahl an eine ListBox übergeben Dieser Tipp zeigt, wie Sie über den Windows-CommonDialog eine Mehrfach-Dateiauswal realisieren... sevAniGif (VB/VBA) ![]() Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. |
||||||||||||||||
|
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. |
|||||||||||||||||


TabStrip Control im Griff


