Dieses Source Code Beispiel demonstriert zwei unterschiedliche Verfahren mit Hilfe derer Sie prüfen können ob ein spezifischer Eintrag in einem ListBox-Steuerelement vorhanden ist. Variante Eins arbeitet mit einer einfachen Schleife, welche von Anfang bis Ende durchlaufen wird. Hierbei wird ein jedes Element in der Liste überprüft und verglichen. Da Abfrage auf Steuerelement-Eigenschaften idR nur recht gemächlich ablaufen, ist mit diesem Vorgehen keine Preise für Geschwindigkeit zu erzielen. Wenn es etwas zügiger vonstattengehen darf ist daher Variante Zwei zu empfehlen. Diese bedient sich der Möglichkeiten der Windows API. Unter Zuhilfenahme der Windows API-Funktion SendMessageByString wird dabei die Sucharbeit direkt an das System ausgelagert. Dies erhöht die Geschwindigkeit und die Effizienz deutlich.
Quellcode
frmProgRun
CommandButton cmdPrüfen
CommandButton cmdPrüfen
CommandButton lstListeFüllen
Form frmListBox
ListBox lstSuche
' VISUAL BASIC WORLD' ===========================================' Das große Portal zum Thema Visual Basic.'' Wenn Ihnen dieser Source Code gefallen hat,' dann empfehlen Sie Visual Basic World bitte' weiter und/oder setzen Sie einen Link auf:'' http://www.visualbasicworld.de/'' Vernetzen Sie sich mit uns:'' http://twitter.com/visualbasicwrld OptionExplicitPrivateDeclareFunction SendMessageByString Lib _
"user32" Alias "SendMessageA" (ByVal hwnd AsLong, _
ByVal wMsg AsLong, ByVal wParam AsLong, _
ByVal lParam AsString) AsLongPrivateConst LB_FINDSTRING = &H18F
Private Zähler AsLongPrivateSub cmdPrüfen_Click(Index AsInteger)
Select Case Index
Case 0
For Zähler = 0 To lstSuche.ListCount
If lstSuche.List(Zähler) = txtSuche.Text Then
MsgBox "Eintrag vorhanden", 64, "Suche"
ExitSubEndIfNext
MsgBox "Eintrag nicht vorhanden", 64, "Suche"
Case 1
If SendMessageByString(lstSuche.hwnd, LB_FINDSTRING, 0, txtSuche.Text) = -1 Then
MsgBox "Eintrag nicht vorhanden", 64, "Suche"
Else
MsgBox "Eintrag vorhanden", 64, "Suche"
EndIfEnd Select
EndSubPrivateSub lstListeFüllen_Click()
For Zähler = 32000 To 0 Step -1
lstSuche.AddItem Zähler
NextEndSub