Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks
Autor
Nachricht
^^kev####
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 476
Wohnort: Haan

TabPages dynamisch hinzufügen/entfernen
Verfasst am: 05.07.2009, 19:39

Beschreibung:
Dieser Tipp zeigt, wie man zur Laufzeit Tabs zu einem TabControl hinzufügen und diese auch wieder entfernen kann.

Funktion:
Visual Basic: [code]
' Dieser Quellcode stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!

' ##############################################################################
' ################################ MainForm.vb #################################
' ##############################################################################
Public Class MainForm
' Liste aller TabPages
Private tabPages As New List(Of TabPage)()

' Wenn Form lädt
Private Sub Form_Load(ByVal sender As Object, _
ByVal e As EventArgs) Handles MyBase.Load

' ListBox leeren
Me.TabsCheckedListBox.Items.Clear()
End Sub

' Wenn Hinzufügen-Butten gedrückt
Private Sub AddButton_Click(ByVal sender As Object, ByVal e As EventArgs)
' Fortlaufende Nummer
Static number As Integer = 1

' Neue TabPage hinzufügen
Me.tabPages.Add(New TabPage(number.ToString()))
' TabPage zu ListBox hinzufügen
Me.TabsCheckedListBox.Items.Add(number.ToString())

number += 1
End Sub

' Wenn der Entfernen-Button gedrückt wurde
Private Sub RemoveButton_Click(ByVal sender As Object, ByVal e As EventArgs)
' Wenn ein Tab in ListBox ausgewählt
If Me.TabsCheckedListBox.SelectedItem IsNot Nothing Then
Dim index As Integer = Me.TabsCheckedListBox.SelectedIndex

' Wenn die TabPage momentan angezeigt wird
If Me.TabControl.TabPages.Contains(Me.tabPages(index)) Then
' TabPage aus TabControl löschen
Me.TabControl.TabPages.RemoveAt( _
Me.TabControl.TabPages.IndexOf(Me.tabPages(index)))
End If

' Tab aus Liste entfernen
Me.tabPages.RemoveAt(Me.TabsCheckedListBox.SelectedIndex)
' Tab aus ListBox entfernen
Me.TabsCheckedListBox.Items.RemoveAt( _
Me.TabsCheckedListBox.SelectedIndex)

' Wenn an Stelle des entfernten Elementes ein anderes Element
' gerückt ist
If Me.TabsCheckedListBox.Items.Count > index Then
' Element markieren
Me.TabsCheckedListBox.SelectedIndex = index
Else
' Letztes Element markieren
Me.TabsCheckedListBox.SelectedIndex = _
Me.TabsCheckedListBox.Items.Count - 1
End If
End If
End Sub

' Wenn TabPage in ListBox aktiviert/deaktiviert
Private Sub TabsCheckedListBox_ItemCheck(ByVal sender As Object, _
ByVal e As ItemCheckEventArgs) Handles TabsCheckedListBox.ItemCheck

' Wenn TabPage aktiviert wurde
If e.NewValue = CheckState.Checked Then
' Ausgewählte TabPage zu TabControl hinzufügen
Me.TabControl.TabPages.Add( _
Me.tabPages(Me.TabsCheckedListBox.SelectedIndex))

' Wenn TabPage deaktiviert wurde
Else
' Ausgewählte TabPage entfernen
Me.TabControl.TabPages.Remove( _
Me.tabPages(Me.TabsCheckedListBox.SelectedIndex))
' Wichtig: Der Index aus der ListBox darf nicht direkt beim
' TabControl verwendet werden, da die Anzahl der dort angezeigten
' Tabs ja anders sein kann
End If
End Sub

End Class[/code]

Beispielprojekt:
http://www.activevb.de/tipps/vbnetdownloads/tipp0057.zip

Quelle: activevb.de
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks

Tags: tabpage hinzufügen, visual basic, tabcontrol hinzufügen, tab

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Problem mit always on top funktion 1039 30.10.2009, 11:26
Keine neuen Beiträge IntStr()funktion 1177 11.10.2007, 08:49
Keine neuen Beiträge TopMost Funktion unter DirectX 921 27.07.2007, 10:48
Keine neuen Beiträge Wie Funktion nutzen ? 1102 29.06.2007, 20:59
Keine neuen Beiträge update funktion einbauen 1341 28.01.2007, 23:11
 



[ Time: 0.1494s ][ Queries: 81 (0.0417s) ][ GZIP on - Debug on ]