| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivTipp 279: Doppelte Einträge einer (Combo-)Listbox löschen | | | Autor: Goofie | Tipp anzeigenDatum: 22.11.09 21:35 |
| Der Tipp ist Prima, hab ihn auch soweit umgesetzt, aber so ganz stimmt das Ganze noch nich:
Private Sub Btn_typesearch_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Btn_typesearch.Click
Dim I As Integer
Dim U As Integer
With Lbx_6TypArten
While I < .Items.Count()
U = I + 1
Do Until U > .Items.Count() - 1
If .Items(U) = Me.Lbx_6TypArten.Items(I) Then
' doppelten Eintrag gefunden!
.Items.Remove(U)
Else
' Ist die Liste sortiert, kann an dieser Stelle
' die Schleife verlassen werden, da kein weiterer
' identischer Eintrag mehr vorkommen kann...
If .Sorted Then Exit Do
' ...ansonsten Zähler um 1 erhöhen
'U = U + 1
End If
Loop
I = I + 1
End While
End With
End Sub Da stimmt noch irgendas nicht mit dem
Private Sub DeleteDuplicateValues(Liste As Control) Ich weiß nicht genau, wie ich das umsetzen kann...
Kann mir da bitte jmd. Helfen | |
Re: Doppelte Einträge einer (Combo-)Listbox löschen | | | Autor: Snof | Datum: 23.11.09 00:51 |
| Hallo
Also der Tipp ist ürsprünglich für VB 5/6 gedacht. Da lief das noch etwas anders mit den Controlls. Um es sauber in .NET zu machen fällt mir momentan keine elegante Lösung ein. Man könnte die Methode überladen, also ein Mal mit DeleteDuplicateValues(Liste As ListBox) und ein Mal mit DeleteDuplicateValues(Liste As ComboBox). Allerding sind dann beide Methoden syntaktisch absolut identisch. Lediglich der Prozedurkopf unterscheidet sich.
Bei einer Methode, also DeleteDuplicateValues(Liste As ListControl), gibt es allerdings ein Problem mit der Item-Eigenschaft. Diese ist zwar bei beiden Steuerelementen praktisch gleich, aber wird in beiden Fallen erst in der entsprechenden Klasse definiert. Es sind also streng genommen zwei verschiedene Eigenschaften.
Persönliche Anmerkung zu dem Tipp:
Steuerelemente sind Objekte, die als graphische Oberfläche gedacht sind. Ihre primäre Aufgabe ist die Ein- und Ausgabe. Sie sollten auch nur dafür genutzt werden. Die Verwaltung von Objekten sollte seperat erfolgen.
Des weiteren ist der Algorithmus nicht gerade gut, was seine Performance angeht. So ist der Aufwand zum Finden von Doppelten O(n^2) und zum Entfernen O(n) (Reflektor 4tw ), somit zusammen O(n^3). Verwaltet man seine Daten eigenständig und füht vor der Suche eine Sortierung durch, lässt sich das Suchen und Entfernen auf O(n * log n) verringern.
Beitrag wurde zuletzt am 23.11.09 um 00:53:33 editiert. | |
Re: Doppelte Einträge einer (Combo-)Listbox löschen | | | Autor: Goofie | Datum: 23.11.09 11:14 |
| Danke für die beiden Antworten, werde mir die mal heute Anend anschauen... | |
Die: Doppelte Einträge einer (Combo-)Listbox löschen | | | Autor: Goofie | Datum: 02.12.09 01:55 |
| Okay, wie bereits geschrieben, werde ich mich damit die Tage beschäftigen... sollte ich noch fragen haben, melde ich mich bei euch... danke soweit | |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevZIP40 Pro DLL
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|