PDA

Vollständige Version anzeigen : Tipp: Multiselect wie im Explorer


Toast78
18.06.2012, 19:24
Huhu,

mir ist schon vor einigen Jahren aufgefallen, dass das ListView aus den CommonControls6.0 ein bisschen buggy ist, was das Multiselect betrifft. Sobald das MouseDown auftritt, werden keine nachkommenden Ereignisse mehr gefeuert. Hier vor allem MouseMove und MouseUp.
Das fällt vor allem dann auf, wenn Items ausgewählt werden, alle außer das SelectedItem (das mit dem gepunkteten Rahmen). Lässt man nun die Maus los,
so wird auch das SelectedItem als Selected markiert, was so im Explorer nicht der Fall ist.
Microsoft hat dazu mal einen kleinen Workaround (http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q240946&) gebastelt, den ich noch ein bisschen angepasst habe.
In der beiliegenden Demo gibt es 3 Formulare:
Das Listview mit ganz normalem Multiselect
Die Worakaround-Variante von Microsoft
und die angepasste Version, bei der das SelectedItem nur markiert wird, wenn es auch im mit der Maus ausgewählten Bereich liegt.

Naja, vielleicht hilft es ja mal irgendwem, der ein ähnliches Feeling wie im Explorer simulieren möchte.

JPA
19.06.2012, 12:55
Hi,

vielen dank für dein Beitrag. Benötige die funktionalität (z.Z.) nicht, aber wollte mal ne rückmeldung geben. Leider bedanken sich die leute hier recht wenig, wie ich finde.
Also danke noch mal für die Bereistellung, ich werfe irgendwann mal darauf zurückkommen :-)
Gruß
JPA