2017-07-30 1 views
0

ich ein Listenfeld mit der sortierten Eigenschaft haben auf true gesetzt. Wenn der Zeichenmodus auf normal eingestellt ist, sortiert er wie erwartet in alphabetischer Reihenfolge. Aber wenn ich den Zeichenmodus auf OwnerDrawFixed eingestellt habe, so dass ich die Farbe bestimmter Elemente ändern kann, dann ist die sortierte Reihenfolge ganz anders. Es ist nicht so, als wäre die sortierte Eigenschaft auf "false" gesetzt (was die Elemente in der Reihenfolge auflisten würde, die der Liste hinzugefügt wurde), aber ich habe nicht herausgefunden, welche Reihenfolge sie verwendet. Die Elementklasse, die zum Ändern der Farbe verwendet wird, hat nur zwei Eigenschaften: den Text (als Zeichenfolge) und die Farbe ... wobei der Text die erste Eigenschaft ist. Jedes Mal, wenn ich das Programm starte, ist die Liste die gleiche, also ist es nicht zufällig. Aber es ist definitiv nicht alphabetisch. Ich habe keinen Code zum Posten, da ich die sortierte Eigenschaft zur Entwurfszeit festgelegt habe. Es gibt nichts, was dies im Code ändern würde.listbox Sortier Problem, wenn in ownerdrawfixed Modus

Ich schließe einen Screenshot mit 4 Listboxen, die zeigen sollte, was geschieht. Sorting Issue

Ich habe für listbox Sortier Fragen gesucht, zu denen nur zwei Beiträge zeigen, von denen keiner dieses Problem behebt.

+0

Datenbeispiele wären in Ordnung. Wenn der Elementtext Ziffern enthält, können sie nicht wie erwartet sortiert werden ... oder es könnte sein, was Sie in der DrawItem-Methode tun, da es ownerDraw ist. Und wir brauchen oder nicht wie Sprache Tags im Titel - es ist nur Rauschen und das ist, was die Tags sind für – Plutonix

+0

Die Daten sind eine Film Titelliste, so dass einige Zahlen enthalten können, aber die meisten nicht. Ursprünglich verwendete ich den Zeichenmodus = normal ... was sehr gut funktionierte, um die Titel in alphabetischer Reihenfolge zu setzen. Aber, es gibt andere Kriterien, die ich die Farbe bestimmter Artikel ändern wollte, also musste ich es zu Ownerdrawfixed ändern. Aber jetzt ist die Reihenfolge nichts in der Nähe von alphabetisch, noch ist es in der Reihenfolge, in der die Titel der Liste hinzugefügt wurden (sortierte = falsch). –

Antwort

0

Ich habe eine Behelfslösung gefunden, aber ich glaube nicht, dies erforderlich sein sollte, und es ist eine zusätzliche Verarbeitung und Overhead, die ich dort fühlen sollte nicht sein müssen. Ich habe versucht, die Daten in einen sortierten, DrawMode normal, nicht sichtbaren listbox Fütterung, und dann zu einer Zeit, diesen 1 Artikel lesen und in eine unsortierten füttern, DrawMode ownerdrawfixed listbox so, dass ich die Farbe einiger Einzelteile ändern . Während dies funktioniert, könnte es das Programm verlangsamen, wenn es sehr viele zu lesende Elemente gibt. Und ich habe herausgefunden, in welcher Reihenfolge es sie einfügt, wenn ich eine sortierte OwnerdrawFixed-Box benutze, um damit anzufangen. Es ist den ersten 2 Artikel am Ende der Liste setzen, dann von oben nach unten wechselt ... so die Reihenfolge so etwas wie dies wäre .... 3, 5, 7, 9, 10, 8, 6, 4, 2, sah 1. ich, als ich die sortierte Liste normalen Lesen und in der sortierten Liste ownerdrawfixed zuerst versucht Fütterung zu sehen, wo es Dinge in Bezug setzen eingegeben zu bestellen.