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.198 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
sevWizard für VB5/6 Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |