ListView mit Checkbox

13/09/2008 - 15:15 von Achim Bohmann | Report spam
Hallo!

in meinem Programm soll der Benutzer in drei unterschiedlichen Listen
einige Eintràge per Checkbox wàhlen können. Dazu verwende ich 2x eine
CheckedListBox und 1x ein ListView mit Checkboxen.
Nun ist die Menge der Daten in den CheckedListBoxen nicht so viel,
sodass der "single select" je Eintrag nicht wirklich stört.

In dem ListView sind unter Umstànden viele Eintràge drin, und ich dachte
mir ich machs komfortabel und lasse den user auch (per multi select)
mal eine ganze Reihe Zeilen markieren und biete dann Buttons für
"select" und "unselect" an.
Zu meinem Erstaunen (da ich noch nicht mit Checkboxen im ListView
gearbeitet habe) werden beim selektieren von mehreren Zeilen sofort
(aber komischerweise nicht immer) die Hàkchen gesetzt.
Nach etwas Lektüre der Ergebnisse von Frau Google stellte ich fest, dass
das so gewollt zu sein scheint. Das passt mir aber nicht wirklich ins
Konzept.

Kann ich irgendwie verhindern, dass das ListView selbstàndig beim
Markieren der Eintràge die Hàkchen setzt/löscht, denn die Vorbelegung
der Haken spiegelt die Eintràge seit dem letzten Speichern wieder und
sollte sich nicht durch Markieren von Zeilen automatisch veràndern...

Danke schon mal und ein schönes Wochenende,
Achim

http://www.bohmann.org
 

Lesen sie die antworten

#1 Kerem Gümrükcü
14/09/2008 - 03:44 | Warnen spam
Hallo Achim,

Du könntest das dahingehend lösen, in dem
Du das Control ableitest und deine eigene
implementierung machst, d.H. mit OwnerDraw
arbeiten und die Checkboxen weglassen, d.H.
die checkboxen nicht zeichnen, sondern nur den
Text, oder nur zeichnen, wenn Du z.B. eine
bestimmte bool variable gesetzt hast, die sagt,
das die checkboxen unter bestimmten umstànden
gezeichnet werden sollen, so was wie ein Property
in dem Control, in der Art "DrawCheckboxesForMultiselect"
oder so was. In den Paint-Ereignissen könntest Du
auch den Status des ListView und des einzelnen Items
bestimmen und ggf. dann dementsprechen darauf reagieren,
ergo zeichnen. Wenn mich nichts irrt (habe gerade kein C#
hier) gibts da ja auch events wie BeforeCheck oder in der
Art, so das Du das "Anchecken" verwerfen kannst (Cancel)
wenn Du z.B. Multiselect gesetzt hast. Ich bin mir mit den
Events aber jetzt nicht so sicher, wie die benannt waren,...

Grüße

Kerem


Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Microsoft Live Space: http://kerem-g.spaces.live.com/
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."

Ähnliche fragen