Items aktiviert lassen ?

MFC openGL

Erfahrenes Mitglied
Hi,

ich habe einen ListView erstellt, aber sobald ich den verlasse, und z.b. in einer txtbox was mache, demarkieren sich die gewählten Items in dem ListView. Das gleiche hab ich auch bei ListBoxen. Denke mal da gibts ne einfache Lösung für, aber ich weiß weder nach WAS ich suchen soll, noch wie ich das beheben kann :(

Kann mir da jemand helfen ?

Gruss und Danke

MFC OpenGL
 
Hi.

Das müsste, wie mir im anderen Thread von Norbert gesgt wurde auch mit SelectedItems gehen. Du merkst dir die Items, und markierst Sie halt wieder. Weil wenn der Fokus auf ein anderes Control geht, dann sind die selektierten Items natürlich weg.


MfG Alexander12
 
Es gibt die Eigenschaft HideSelection . Ist diese Eigenschaft auf true bleibt die Selektierung nicht sichtbar, wenn das Control den Fokus verliert. Bei false bleibt die Selektion bei Verlust des Fokuses erhalten.
 
Okey, hat soweit geklappt, mal davon abgesehen das die Normalfarbe Blau ist, und der bei HideSelection das Item grau macht...
Und wieso machen einige meiner Listboxen das ohne die Einstellung zu setzen, bleiben also markiert egal ob die den Fokus haben oder nicht, und andere nicht ? Ich meine normal kann das wohl kaum sein, oder ? :(

Naja... Hauptsache ist, das Problem ist behoben ;)

Gruss & Danke

MFC OpenGL
 
Naja, bei manchen Steuerelementen will man das vielleicht nicht.

Warum der Balken dann zu grau wird, ist abhängig von den verwendeten Systemfarben und macht auch durchaus Sinn: Denn warum den Balken in blau lassen, wenn der Fokus auf einem anderen Steuerelement liegt? Das würde einen User verwirren ...
 
Also wenn ich einen Eintrag in dem ListView markiere, und dann einen Wert in einer TextBox ändere, um die dann später zu übernehmen, dann will ich ja nicht das der User nen Schock bekommt und denkt er ändert gleich wer weiß was...

Wäre schon sinnvoll wenn das Blau bleiben würde.
 
Das wird es aber sicher nicht sein solang Du keinen Focus drauf hast.
Du könntest versuchen Dir ein ListViewItem zu erstellen, welches Dir dieses Verhalten bietet.
Mein Vorschlag währe vom ListViewItem zu erben, das Property BackColor mit new zu überschreiben
und im Setter einfach nichts zu machen.
Dafür solltest noch vom ListView erben und ein Property für die ListViewItems bereit stellen,
wann sie sich so Verhalten sollen.

Warum reicht denn eigentlch ListView.LabelEdit nicht für das ändern des Textes aus?

MfG, cosmo
 
Weil mein ListView nicht breit genug ist(scrollen nicht erwünscht), um den kompletten Datensatz zu ändern.
Ich zeige also nur die wichtigen Infos an, den rest lass ich ausgeblendet (Coloum breite 0)

Aber die Infos brauche ich natürlich ebenfalls, und daher muss ich die darunter in eine Reihe von TextBoxen packen, und das dort schön sauber anzeigen lassen.

PS : COSMO, dein POSTEINGANG ist VOLL, mach mal Platz darin ;)
 
Zurück