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.
Einziger Neueinsteiger ist das Alps-System in der Schweiz. Die weiteren Top-Ten-Systeme aus Europa stehen in…
Im vergangenen Jahr steigt ihre Zahl um 32 Prozent. Die Zahl der betroffenen PC-Nutzer sinkt…
Die App satellite wird künftig Telefongespräche in Echtzeit datenschutzkonform mit Hilfe von KI zusammenfassen.
Als Erweiterung von Master-Data-Management ermöglicht es die Lösung, den Werdegang von Daten verstehen und sie…
Sie erlauben unter anderem das Einschleusen von Schadcode. In älteren iPhones und iPads mit OS-Version…
Neuer Speicher für KI von Huawei mit integrierter Ransomware-Erkennungs-Engine und deutlich geringerem Energiekonsum.