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 |