Rubrik: Controls · Sonstiges | VB-Versionen: VB5, VB6 | 31.01.05 |
Control-Move im SSTab-Control Diesmal zeigen wir, wie sich ein Control zur Laufzeit auf eine bestimmte Registerkarte im SSTab-Control verschieben lässt. | ||
Autor: Wolfgang Christ | Bewertung: | Views: 11.784 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Aufbauend auf unserer Tipp SSTab: Suchen der Registerkarte für ein Control möchten wir mit unserem heutigen Tipp zeigen, wie sich ein beliebiges Control zur Laufzeit auf eine bestimmte Registerkarte im SSTab-Control verschieben lässt.
Zusätzlich zu dem Code aus eben genannten Tipp, benötigen wir noch zusätzlichen Code:
Option explicit ' benötigte API-Funktion Private Declare Function SetParent Lib "user32" ( _ ByVal hWndChild As Long, _ ByVal hWndNewParent As Long) As Long
Public Sub MoveControlToTab(ByVal SSTab As SSTab, _ ByVal oControl As Control, _ ByVal lNewTab As Long, _ Optional ByVal bAutoActivateTab As Boolean = True) Dim lTab As Long ' aktuelles Registerblatt sichern lTab = SSTab.Tab ' Wenn Control bereits auf SSTab enthalten, dann erst entfernen If GetTabNumberByControlName(SSTab, oControl, True) >= 0 Then SetParent oControl.hWnd, Me.hWnd End If ' Tab umschalten und hinzufügen SSTab.Tab = lNewTab SetParent oControl.hWnd, SSTab.hWnd If Not bAutoActivateTab Then ' altes Tab wieder herstellen SSTab.Tab = lTab End If End Sub
Aufrufbeispiel:
' TextBox auf 2. Registerkarte verschieben MoveControlToTab SSTab1, Text1, 2