Ich arbeite gerade mit VB im VisualStudio 2010 und habe auf meinem Form ein ListView bei dem, wenn ich ein Item ganz normal per klick selectiert habe und dann auf meine ComboBox (DropDownList) darunter klicke das Item oben nicht mehr blau markiert ist. kann ich machen dass das trotzdem markiert bleibt?
1
ListView item selected lassen
Frage von
Aides
Antworten (1)
-
0Antwort von
CaroAsCaroAs
Möchtest Du ZUSÄTZLICH bei einer Auswahl in Deiner DropDowmList, dass das ursprüngliche ausgewählt bleibt, dann müsste es eine MultiSelect-Eigenschaft (=True) geben bzw. müsste man eigentlich mit Ctrl+MouseClick mehrere auswählen können, ganz MS Windows-konform halt.
Ansonsten sorgt ein markiertes, aber nicht selektiertes Element (ohne Fokus) in einer ComboBox eher für Verwirrung, weil dann der Zustand/Fokus nicht so klar ist oder ich habe Deine Frage doch nicht ganz verstanden???
Diese Frage
entweder ich kapier deine Antwort nicht oder du meine Frage... ich glaub eher das 2.... also: Ich habe oben ein ListView in dem ich ein Item auswählen muss und darunter ein Dropdown bei dem ich einen Wert auswählen muss. Beim Klick auf einen Button soll es einen Wert aus dem selected ListView Item mit dem Wert im Dropdown multiplizieren. Dabei ist es allerdings doof wenn ich ein Item ausgewählt habe und den Dropdown anklicke und dadurch die blaue Markierung im ListView verschwindet... wie kann ich das verhindern?
Ja, ich hatte Deine Frage am Anfang missverstanden. Ich werde das mal gleich nachvollziehen, habe zwar nur VS 2005/2008, sollte aber ähnlich sein. Ich melde mich gleich wieder...
Also, am einfachsten ist es, wenn Du bei dem SelectionIndexChanged-Ereignis der ListView das/die ausgewählten Items mit einer anderen Hintergrundfarbe belegst, damit sichtbar ist, welche(s) Item(s) auswählt wurde, wenn der Fokus wechselt.
Dazu sie SelectedListViewItemCollection durchgehen (nur bei multiselect sind mehrere möglich), und die selektierten mit anderen Hintergrundfarbe belegen und bei den nicht selektierten die Select-Hintergrundfarbe wieder löschen.
Dann sieht man, welche Items selektiert wurden, selbst wenn der Fokus dann auf der ComboBox steht!
Ok... die Idee ist gut aber irgendwie komm ich nicht an die Backgroundcolor vom selected item... pls help... PS: Multiselect hab ich sowiso aus
Die Hintergrundfarbe kannst Du z.B. auf System.Drawing.SystemColors.ActiveCaption und die Vordergrundfarbe auf System.Drawing.SystemColors.ActiveCaptionText setzen. Aber vorher alle Farben der ListViewItems wieder zurücksetzen, damit nur das wirklich selektierte "markiert" bleibt.
Ansonsten habe ich für ListView nichts entsprechendes gefunden wie es z.B. für das Ereignis DataGridView_CellPainting gibt (was natürlich nicht heißt, dass es das nicht gibt!)