2017-07-30 4 views
0

sortedプロパティがtrueに設定されたリストボックスがあります。 drawmodeがnormalに設定されている場合、アルファベット順に予想通りにソートされます。しかし、drawmodeをownerdrawfixedに設定して特定のアイテムの色を変更できるようにすると、ソートされた順序はかなり異なります。並べ替えられたプロパティがfalse(リストに追加された順序で項目をリストする)に設定されているのと同じではありませんが、使用している順序がわかりません。色を変更するために使用される項目クラスには、テキスト(文字列として)とテキストの最初のプロパティである色の2つのプロパティしかありません。私がプログラムを実行するたびに、リストは同じであるため、ランダムではありません。しかし、それは間違いなくアルファベット順ではありません。私はデザイン時にソートされたプロパティを設定してから投稿するコードはありません。コード内でこれを変更するものはありません。ownerdrawfixedモードでリストボックスソートの問題

私は4つのリストボックスでスクリーンショットを表示しています。これは何が起こっているかを示すはずです。 Sorting Issue

私はリストボックスソートの問題を検索しましたが、2つの投稿のみが表示され、いずれもこの問題に対処していません。

+0

データサンプルは、アイテムテキストに数値が含まれていると、期待通りにソートできない場合や、ownerDrawであるためにDrawItemメソッドで行っていることがあります。そして、我々はタイトルに言語タグが必要ないし、好きでもない。ちょうどノイズであり、それはタグのためのものである。 – Plutonix

+0

データは映画のタイトルリストなので、いくつかは数字を含むかもしれないが、ほとんどはそうではない。もともと私はdrawmode = normalを使っていました...アルファベット順にタイトルを置くのにはうってつけでした。しかし、特定のアイテムの色を変更したいという基準があるので、ownerdrawfixedに変更する必要がありました。しかし、現在の順序はアルファベット順に近いものではなく、タイトルがリストに追加された順序(sorted = false)でもありません。 –

答えて

0

私は回避策を見つけましたが、これは必要であるとは思われません。余分な処理とオーバーヘッドが必要ではないと感じています。 私はソートされたノーマルで非表示のリストボックスにデータを送り込み、一度にこの1アイテムを読んで、ソートされていないdrawmode ownerdrawfixedリストボックスにフィードして、いくつかのアイテムの色を変更できるようにしました。これがうまくいく間に、読まれるべき項目が非常に多い場合、最終的にプログラムが遅くなる可能性があります。そして、私はソートされたownerdrawfixedボックスを使い始めると、それを入れている順序を知りました。リストの一番下に最初の2つのアイテムを置いています。そして、トップのボトムが交互になります。そのような順序は、このようになります。3,5,7,9,10,8,6,4、 2、1.これは、最初にソートされたノーマルリストを読み込み、ソートされたownerdrawfixedリストに入力して、入力されたオーダーに関するものをどこに置いているのかを確認しようとしたときに見ました。

関連する問題