vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Controls · ListView   |   VB-Versionen: VB624.08.01
Spaltenbreite im ListView-Control

Zwei Möglichkeiten die Spaltenbreiten im ListView-Control automatisch einzustellen.

Autor:   Thomas BannertBewertung:     [ Jetzt bewerten ]Views:  24.813 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Im nachfolgenden möchten wir Ihnen zwei Möglichkeiten vorstellen, wie sich die Spaltenbreiten der einzelnen Spalten eines ListView-Controls automatisch per Programmcode festlegen lassen.

1. Alle Spalten auf eine bestimmte einheitliche Breite setzen
Der Parameter lWidth legt hierbei die Breite fest:

Sub LVSize(oListView As MSComctlLib.ListView, _
  lWidth As Long)
 
  Dim oColHeader As ColumnHeader
 
  For Each oColHeader In ListView1.ColumnHeaders
    oColHeader.Width = lWidth
  Next  
End Sub

2. Optimale Spaltenbreiten
Die nachfolgende Funktion setzt alle Spalten des übergebenen ListViews-Controls auf die optimale Breite. Wenn AccountForHeaders = True ist, werden die Spaltenüberschriften mitberücksichtigt. Ansonsten orientiert sich die Funktion nur an den Inhalten.

' zunächst die benötigten API-Deklarationen
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 LVM_SETCOLUMNWIDTH = &H1000 + 30
Private Const LVSCW_AUTOSIZE = -1
Private Const LVSCW_AUTOSIZE_USEHEADER = -2
 
' ListView-Spalten auf optimale Breite setzen
Public Sub LVColumnWidth(oListView As MSComctlLib.ListView, _
  Optional AccountForHeaders As Boolean = False)
 
  Dim col As Long
  Dim LParm As Long
 
  On Error GoTo error
  If AccountForHeaders Then
    LParm = LVSCW_AUTOSIZE_USEHEADER
  Else
    LParm = LVSCW_AUTOSIZE
  End If
 
  For col = 0 To oListView.ColumnHeaders.Count - 1
    SendMessage oListView.hwnd, LVM_SETCOLUMNWIDTH, _
      col, ByVal LParm
  Next col  
  Exit Sub
 
error:
End Sub

Beispiele

' alle Spalten auf die Breite 2000 einstellen
LVSize ListView1, 2000
 
' Spalten je nach Inhalt auf die optimale Breite einstellen
LVColumnWidth ListView1
 
' Spalten je nach Inhalt auf die optimale Breite einstellen
' unter Berücksichtigung der Spalten-Überschriften
LVColumnWidth ListView1, True

Dieser Tipp wurde bereits 24.813 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel