![]() |
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
|
|
|
|
|
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: [ 1660 ]
|
|
|