Tipp 0520 Höhe der DropDown-Liste ändern
Autor/Einsender:
Datum:
  Gottfried Mehling
30.10.2006
Entwicklungsumgebung:   VB 6
Insbesondere bei vielen Einträgen in einer ComboBox kann es störend sein, dass die Höhe der DropDown-Liste einer ComboBox schreibgeschützt ist. Normalerweise wäre genug Platz, so dass die DropDown-Liste auch viel länger sein könnte, wie sie von VB vorgegeben wird (standardmäßig werden maximal 8 Elemente in der DropDown-Liste angezeigt). Bei einer längeren DropDown-Liste ist die Auswahl daraus für der User einfacher und übersichtlicher.
Dieses Beispiel zeigt, wie mittels der API-Funktion MoveWindow die Höhe der DropDown-Liste (nicht des Bearbeitungsfeldes) beliebig eingestellt werden kann. Ist die benötigte Höhe zur Darstellung aller Einträge kleiner als die gewünschte Höhe, wird auch nur wie gewohnt die benötigte Höhe angezeigt.
 
Option Explicit

Private Declare Function MoveWindow Lib "user32" (ByVal _
    hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal _
    nWidth As Long, ByVal nHeight As Long, ByVal bRepaint _
    As Long) As Long

Private Sub Form_Load()
  Dim i As Long
  Dim j As Long

  For j = 1 To 9
    For i = 65 To 90
      Me.Combo1.AddItem j & " " & Chr(i)
      Me.Combo2.AddItem j & " " & Chr(i)
    Next i
  Next j

  Me.Combo1.ListIndex = 0
  Me.Combo2.ListIndex = 0

  ComboboxSize Me.Combo2, 5000
End Sub

Private Sub ComboboxSize(ByRef cboCombo As ComboBox, Optional _
      ByVal lngHeight As Long = 5000)

  With cboCombo
    If .Style <> 1 Then
       MoveWindow .hwnd, .Left \ Screen.TwipsPerPixelX, _
            .Top \ Screen.TwipsPerPixelY, _
            .Width \ Screen.TwipsPerPixelX, _
            lngHeight \ Screen.TwipsPerPixelY, 1
      End If
   End With
End Sub
 
Weitere Links zum Thema
Breite der DropDown-Liste einer ComboBox anpassen
Hinweis für VBA-Anwender
Für die auf einer UserForm verwendeten ComboBox (MSForms-Steuerelement) kann die Anzahl der in der DropDown-Liste anzuzeigenden Elemente mit der ListRows-Eigenschaft festgelegt werden.

Windows-Version
95
98
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,7 kB) Downloads bisher: [ 186 ]

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: Sonntag, 15. Mai 2011