Visual Basic-Tipp: Automatische Suche in einem Listenfeld

Wenn der Fokus im Listenfeld liegt, scrollt dieses automatisch zum ersten Element, das mit dem eingegebenen Buchstaben beginnt. Es wird jedoch nicht automatisch Elemente auf der Basis von mehr als dem ersten Buchstaben markieren. Gibt man zum Beispiel „ap“ ein, möchte man sicherlich, dass im Feld das erste Element markiert wird, das mit „ap“ beginnt. Dieser Tipp erklärt, wie man dieses Verhalten mit der API-Funktion SendMessage realisieren kann. Die folgende Deklaration muss im Programm aufgenommen werden:


Public Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As Long

Außerdem wird die folgende Konstante benötigt, die das Listenfeld auffordert, das erste Element mit der angegebenen Vorsilbe zu markieren:


Public Const LB_SELECTSTRING = &H18C

Zusätzlich zum Listenfeld erfordert diese Methode ein Textfeld. Der Anwender gibt im Textfeld den Text ein, und das Listenfeld wählt automatisch das erste hierzu passende Element aus. Die Nachricht wird in der Change-Event-Prozedur des Textfeldes gesendet:


Private Sub Text1_Change()
If Text1.Text  "" Then
SendMessage List1.hwnd, LB_SELECTSTRING, -1, Text1.Text
End If
End Sub

Für einen Anwender ist die Möglichkeit, Listenfelder auf der Basis von mehr als nur dem ersten Buchstaben auszusuchen, dann besonders nützlich, wenn die Liste zahlreiche Elemente beinhaltet.

ZDNet.de Redaktion

Recent Posts

KI-gestütztes Programmieren bringt IT-Herausforderungen mit sich

OutSystems-Studie: 62 Prozent der Befragten haben Sicherheits- und Governance-Bedenken bei Softwareentwicklung mit KI-Unterstützung.

4 Tagen ago

Studie: Ein Drittel aller E-Mails an Unternehmen sind unerwünscht

Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…

1 Woche ago

HubPhish: Phishing-Kampagne zielt auf europäische Unternehmen

Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…

1 Woche ago

1. Januar 2025: Umstieg auf E-Rechnung im B2B-Geschäftsverkehr

Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.

1 Woche ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…

1 Woche ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

1 Woche ago