Rubrik: Controls · ComboBox | VB-Versionen: VB4, VB5, VB6 | 25.09.03 |
Einträge aus einer geöffneten ComboBox-Liste löschen Wie man Einträge aus einer geöffneten ComboBox-Liste löscht, zeigt Ihnen dieser Tipp. | ||
Autor: Dieter Otter | Bewertung: | Views: 14.680 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wie der Anwender Einträge aus einer geöffneten ComboBox-Liste löschen kann, zeigt nachfolgender Tipp. Hierzu braucht man lediglich die ENTF-Taste im KeyDown-Ereignis abzufragen, um dann den gerade selektierten Eintrag via RemoveItem zu löschen.
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer) ' Wurde die ENTF-Taste gedrückt? If KeyCode = vbKeyDelete Then ' ... dann selektieren Eintrag löschen With Combo1 If .ListIndex > -1 Then KeyCode = 0 .RemoveItem .ListIndex End If End With End If End Sub
So... das Ganze funktioniert jetzt schon recht gut - aber: Enthält die Liste nach dem Löschen des Eintrags weniger Zeilen, als im sichtbaren Bereich angezeigt werden können, verändert sich die Größe der Liste nicht automatisch und der letzte Eintrag bleibt stehen
Dieser unschöne Nebeneffekt lässt sich aber sehr leicht umgehen
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer) ' Wurde die ENTF-Taste gedrückt? If KeyCode = vbKeyDelete Then ' ... dann selektieren Eintrag löschen With Combo1 If .ListIndex > -1 Then .RemoveItem .ListIndex ' Form neuzeichnen Me.Refresh End If End With End If End Sub