Visual Basic World - Programmierung und BeispieleVisual Basic World - Tipps und TutorialsVisual Basic World - Source-Code und Forum

<leer>

Tipp 039: ListBox auf einen bestimmten Eintrag überprüfen

Autor: Alexander Kopatz  VB-Version: Visual Basic 6.0   Download: Beispielprojekt Tipp-039

Beschreibung

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

Option Explicit Private Declare Function SendMessageByString Lib _ "user32" Alias "SendMessageA" (ByVal hwnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, _ ByVal lParam As String) As Long Private Const LB_FINDSTRING = &H18F Private Zähler As Long
Private Sub cmdPrüfen_Click(Index As Integer) 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" Exit Sub End If Next 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" End If End Select End Sub
Private Sub lstListeFüllen_Click() For Zähler = 32000 To 0 Step -1 lstSuche.AddItem Zähler Next End Sub

<leer> Aktuelle Seite Back To Top
Druckansicht | Feedback | Favoriten
Copyright © Visual Basic World, 2000-2022 | Kontakt | Impressum

Visual Basic World @ Twitter

Folgen Sie Visual Basic World!

Visual Basic World @ Twitter
Wenn Ihnen Visual Basic World gefällt, dann folgen Sie uns doch bei Twitter (@visualbasicwrld).
Vielen Dank!