vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik:    |   VB-Versionen: VB.NET01.04.08
Combo-/ListBox auf bestimmten Eintrag prüfen

Mit der hier vorgestellten Funktion lässt sich prüfen, ob in einer Combo-/ListBox ein bestimmter Eintrag vorhanden ist.

Autor:  Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  1.818 
http://www.tools4vb.de/System:  WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt 

Unser heutiger Extra-Tipp zeigt eine einfache und schnelle Möglichkeit, wie man prüfen kann, ob in einer Combo- oder ListBox ein bestimmter Eintrag vorhanden ist.

Die Funktion ItemExists erwartet hierbei im ersten Parameter das Control (ComboBox bzw. ListBox) und als zweiten Parameter das Element, auf das geprüft werden soll. Die Funktion gibt den ListIndex des Elements zurück, falls dieses in der Auflistung vorhanden ist. Andernfalls wird der Wert -1 zurückgegeben.

''' <summary>
''' Prüft, ob das angegebene Element in der ComboBox-/ListBox-Auflistung enthalten ist.
''' </summary>
''' <param name="oControl">ComboBox bzw. ListBox-Control</param>
''' <param name="oItem">Element, auf das geprüft werden soll.</param>
''' <param name="bAutoSelect">True, wenn das Element autom. selektiert werden soll</param>
''' <returns>ListIndex des Elements innerhalb der Auflistung 
''' bzw. -1, falls nicht vorhanden</returns>
Public Function ItemExists(ByVal oControl As Object, _
  ByVal oItem As Object, _
  Optional ByVal bAutoSelect As Boolean = False) As Integer
 
  With oControl
    ' Ist das Element vorhanden?
    If .Items.Contains(oItem) Then
      ' Wenn ja, ggf. selektieren...
      Dim Index As Integer = .Items.IndexOf(oItem)
      If bAutoSelect Then .SelectedIndex = Index
 
      ' ... und Index zurückgeben (0....n)
      Return Index
    End If
  End With
 
  ' Wenn Element nicht vorhanden, -1 zurückgeben
  Return -1
End Function

Das Ganze funktioniert sowohl für die Standard-ListBox von VB.NET, als auch für die ComboBox mit DropDownStyle = "DropDownList".

Beispiel:

With ListBox1.Items
  .AddItem "Auto"
  .AddItem "Haus"
  .AddItem "Garten"
End With
Dim sItem As String = "Haus"
 
' Eintrag autom. selektieren, falls vorhanden
If ItemExists(ListBox1, sItem, True) < 0 Then
  MsgBox("Eintrag nicht vorhanden!")
End If