Hallo zusammen
Welches Event wird ausgelöst, wenn ein Eintrag einer Combobox hinzugefügt wird (combobox1.items.add(„asdf“)). Ich möchte dieses Ereignis überschreiben, um doppelte Einträge zu vermeiden.
Hallo zusammen
Welches Event wird ausgelöst, wenn ein Eintrag einer Combobox hinzugefügt wird (combobox1.items.add(„asdf“)). Ich möchte dieses Ereignis überschreiben, um doppelte Einträge zu vermeiden.
Ich glaube da wird kein Event ausgelöst. Kannst Du nicht vor dem Add prüfen oder das Element enthalten ist (combobox1.items.FindByValue(„asdf“))?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Eigentlich wollte ich die doppelten Einträge im Objekt selbst abhandeln. Doch scheinbar funktioniert dies nicht…
Eigentlich wollte ich die doppelten Einträge im Objekt selbst
abhandeln. Doch scheinbar funktioniert dies nicht…
Hallo Patrik.
Versuch’s mal indem du die „OnFormat“-Methode deiner Combobox-Klasse überschreibst. Ich hab nicht weiter getestet, wann genau sie auslößt, aber beim Hinzufügen von Items ist dies der Fall (Löschen von Einträgen läßt sie kalt). Das kommt wohl deinem gesuchten Event am nächsten.
Dachte mir das so:
Public Class testCombobox
Inherits ComboBox
Protected Overrides Sub OnFormat(ByVal e As System.Windows.Forms.ListControlConvertEventArgs)
MyBase.OnFormat(e)
Dim foundCount As Integer = 0
'Elemente der Combobox durchgehen
For Each i As Object In Me.Items
'"Gleiches" Item?
'Sollen auch andere Datentypen als nur Strings in der Combobox abgelegt werden, muss diese Prüfung evtl. verfeinert werden...
If i.ToString = e.ListItem.ToString Then
foundCount += 1
End If
'Das Item wurde bereits mindestens 2x gefunden -\> Entfernen und Schleife beenden.
If foundCount = 2 Then
Me.Items.Remove(e.ListItem)
Exit For
End If
Next
End Sub
End Class