VB 5/6-Tipp 0025: Tabulatoren in Listboxen setzen
von ActiveVB
Beschreibung
Von Hause aus ist es nicht möglich in einem Listenfeld Tabs einzubauen. Hier wird gezeigt wie es doch machbar ist. Zudem lässt sich die Tabulatorweite beliebig verändern.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'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! '------------- Anfang Projektdatei Project1.vbp ------------- '--------- Anfang Formular "Form1" alias FORM1.FRM --------- ' Steuerelement: Schaltfläche "Command2" ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Listen-Steuerelement "List1" Option Explicit Private Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As _ Long, ByVal wParam As Long, lParam As Any) As Long Private Const LB_SETTABSTOPS = &H192 '### Hier die Anzahl der maximal aufretenen Tabs eintragen (hier 3) Const OGrenze = 3 '### Feld reservieren Dim Tabulator(1 To OGrenze) As Long Private Sub Form_Load() '### Die einzelnen Tabs mit konkreten Werten belegen Tabulator(1) = 50 Tabulator(2) = 100 Tabulator(3) = 150 'Tabulator(4) = 200 'Tabulator(5) = 250 ' ... Call MakeList End Sub Private Sub MakeList() '### Liste leeren, neue Tabs via API senden & Liste neu füllen List1.Clear SendMessage List1.hwnd, LB_SETTABSTOPS, OGrenze, Tabulator(1) List1.AddItem "Heinrich" & vbTab & "Gumpertisch" & vbTab & "12345" _ & vbTab & "Otzlingen" List1.AddItem "Gundi" & vbTab & "Gumpertisch" & vbTab & vbTab _ & "Futzkirchen" List1.AddItem "Fritz" & vbTab & vbTab & "12345" & vbTab _ & "Rotzbach" List1.AddItem "Lisel" & vbTab & "Krauter" & vbTab & "12345" End Sub Private Sub Command1_Click() '### Tabs aufwärts schieben Tabulator(1) = Tabulator(1) + 1 Tabulator(2) = Tabulator(2) + 2 Tabulator(3) = Tabulator(3) + 3 'Tabulator(4) = Tabulator(4) + 4 'Tabulator(5) = Tabulator(5) + 5 ' ... Call MakeList End Sub Private Sub Command2_Click() '### Tabs abwärts schieben If Tabulator(1) < 0 Then Exit Sub Tabulator(1) = Tabulator(1) - 1 Tabulator(2) = Tabulator(2) - 2 Tabulator(3) = Tabulator(3) - 3 'Tabulator(4) = Tabulator(4) - 4 'Tabulator(5) = Tabulator(5) - 5 ' ... Call MakeList End Sub '---------- Ende Formular "Form1" alias FORM1.FRM ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 7 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Olaf am 27.01.2008 um 13:04
Das habe ich schon lange gesucht!
Kommentar von Klaus am 01.06.2005 um 13:28
Das habe ich schon lange gesucht!
Kommentar von Volker am 13.03.2003 um 23:09
Leider funktioniert das nicht mit einer ComboBox. Hat jemand eine Idee, wie es dort zu verwirklichen ist.
Kommentar von Anton Erhard am 07.01.2003 um 12:41
Die Lösung ist für meinen Bedarf gerade richtig
Kommentar von Alfred C. Knoll-Harsanyi am 16.05.2002 um 12:29
Ups! Fehler gefunden! Der Datentyp für Tab war falsch. Das wirkt sich wohl unter W2K und XP unterschiedlich aus.
Kommentar von Alfred C. Knoll-Harsanyi am 16.05.2002 um 12:12
Mir ist nicht klar, welche Maßeinheit dem Tab zu Grunde liegt. Ich habe zwei Tabs mit 50 und 150 belegt, die erste Spalte passt, die zweite Spalte wird nicht angezeigt.
List1.Width: 6435
Sind das Twips, Pixels, ...?
Unter W2K (zu Hause)funktioniert die selbe Routine allerdings überhaupt nicht im Gegensatz zu unter XP (Firma). Warum?
Kommentar von k.doblander am 14.07.2001 um 00:10
Mir fiel beim experimentieren auf, dass negative TAB-Werte eine rechtsbündige Ausrichtung zur Folge haben. Kann das jemand bestätigen oder ist das wieder unter 'its not a bug - ist a feature' einzuordnen ?