![]() |
Tipp 0080
|
Doppeleinträge in List-/ ComboBox verhindern
|
 |
|
Autor/Einsender: Datum: |
|
Michael Werner 26.06.2005 |
|
Entwicklungsumgebung: |
|
VB.Net 2003 |
Framework: |
|
1.1 |
|
|
Über For ... Each-Schleifen wird vor dem Hinzufügen eines neuen Eintrags die Auflistung der
List- oder ComboBox durchlaufen, um zu prüfen, ob der hinzuzufügende Wert bereits in der Elementauflistung
vorhanden ist. Die hier verwendeten wiederverwendbaren Funktionen erleichtern die Weiterverwendung im eigenen Code.
|
Der Funktion muss als Parameter das Steuerelement (List- oder ComboBox) und der zu prüfende neue Eintrag
übergeben werden. Der Rückgabewert (Boolean) der Funktion gibt an, ob der einzufügende Wert schon als Element
der Auflistung existiert oder nicht.
|
|
|
Das Framework 2.0 ab VB 2005 enthält mit der Methode Items.Contains
eine sehr einfache Möglichkeit zur Prüfung von Doppeleinträgen.
Dies wird im VB 2005 Beispiel des Tipps ListBox-Einträge speichern und einlesen
gezeigt.
|
|
|
Public Class Form1
Inherits System.Windows.Forms.Form Vom Windows Form Designer generierter Code
Private Function IsDrin(ByVal lst As ListBox, _
ByVal newitem As String) As Boolean
Dim item As String
Dim i As Integer
For Each item In lst.Items
If item = newitem Then
lst.SelectedIndex = i
Return True
Exit For
End If
i += 1
Next
Return False
End Function
Private Function IsDrin(ByVal cbo As ComboBox, _
ByVal newitem As String) As Boolean
Dim item As String
Dim i As Integer
For Each item In cbo.Items
If item = newitem Then
cbo.SelectedIndex = i
Return True
Exit For
End If
i += 1
Next
Return False
End Function
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
If Not IsDrin(ListBox1, TextBox1.Text) Then
ListBox1.Items.Add(TextBox1.Text)
Label2.ForeColor = Color.Blue
Label2.Text = "Neuen Eintrag eingefügt!"
ListBox1.SelectedIndex = ListBox1.Items.Count - 1
Else
Label2.ForeColor = Color.Red
Label2.Text = "Eintrag schon vorhanden!"
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
If Not IsDrin(ComboBox1, TextBox1.Text) Then
ComboBox1.Items.Add(TextBox1.Text)
Label2.ForeColor = Color.Blue
Label2.Text = "Neuen Eintrag eingefügt!"
ComboBox1.SelectedIndex = ComboBox1.Items.Count - 1
Else
Label2.ForeColor = Color.Red
Label2.Text = "Eintrag schon vorhanden!"
End If
End Sub
End Class
|
|
|
|
|
Windows-Version |
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
|
Download (6,8 kB)
|
Downloads bisher: [ 585 ]
|
|
|