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.879 mal aufgerufen.
Anzeige
![]() ![]() ![]() (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. |
sevZIP40 Pro DLL ![]() Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |