Bei der Entwicklung des Sitemap - Generators brauchte ich eine CheckedListBox, in der die Items nach dem Checked Status sortiert werden können.
Die erweiterte CLB ist von der standard CheckedListBox abgeleitet. Im Constructor wird die Sorted - Eigenschaft auf false gesetzt und das Property neudefiniert. Damit wird die Sortierung von der standard CheckedListBox ausgeschaltet. Mit den drei neuen Properties PositionChecked, PositionUnchecked und PositionIndeterminate wird die Reihenfolge gemäß Checked Status vorgegeben. Gültige Werte sind 0, 1 und 2.
Die CLB unterstützt nur Strings in der Itemsliste. Das Sortierverfahren funktioniert folgendermaßen. Aus der Stringliste wird intern eine neue Stringliste erzeugt. Jedem Item in der Itemliste wird je nach Checked Status die Positionnummer davor gesetzt und der Checked Status angehängt. Die so gebildete List wird alphabetisch sortiert und wieder in die CLB übertragen.
Die On... Methoden sorgen für die Aktualisierung.
In der ZIP Datei stecken zwei Visual Studio-Projekte, die erweiterte CheckedListBox und ein Test-Projekt. Beide sind in C# geschrieben. Vor dem Aufruf der Form1 (Test-Form) muss das Projekt CheckedListBox erstellt werden, sonst verschwindet die CLB in der Form wegen des Verweises auf ein nicht vorhandenes Element.
Programm Info:Eine erweiterte CheckedListBox in C# geschreiben. Die Benutzung des Programms erfolgt auf eigene Verantwortung. Es wird keine Gewährleistung übernommen. Anregungen sind willkommen. Download:Nutzung:unter Visual Studio .NET |