Tipp 0155 Breite der DropDown-Liste anpassen
Autor/Einsender:
Datum:
  Angie
02.11.2001
Entwicklungsumgebung:   VB 5
Beim Formulardesign kommt es häufig vor, dass man die Breite der ComboBox zu schmal bemisst oder dies sogar aus Platzgründen notwendig ist. Dieses Beispiel zeigt, wie man die Breite der DropDown-Liste (nicht des Bearbeitungsfeldes) der ComboBox automatisch der Länge der Listeneinträge anpassen kann.
 
Option Explicit

Private Declare Function SendMessage Lib "User32" Alias _
      "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
      ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const CB_SETDROPPEDWIDTH = &H160

Private Sub Form_Load()
  Dim i As Integer

  With Combo1
    .AddItem "Ein kurzer Eintrag"
    For i = 1 To 3
      .AddItem "Längere Einträge sind meistens nicht gut lesbar"
    Next i
    .AddItem "Noch ein kurzer Eintrag"
    .ListIndex = 0
  End With

  Call AutoSizeComboBox(Combo1)
End Sub

Sub AutoSizeComboBox(c As ComboBox)
  Dim maxBreite As Long
  Dim listBreite As Long
  Dim i As Integer

  maxBreite = c.Width
  For i = 0 To c.ListCount - 1
    listBreite = Me.TextWidth(c.List(i))
    If listBreite > maxBreite Then maxBreite = listBreite
  Next i
  SendMessage c.hwnd, CB_SETDROPPEDWIDTH, maxBreite + 20, 0
End Sub
 
Weitere Links zum Thema
Höhe der DropDown-Liste einer ComboBox ändern

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (2,4 kB) Downloads bisher: [ 1664 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 3. Oktober 2011