リストボックスのソートの方法

解決


リース  2005-08-24 13:38:38  No: 91751  IP: [192.*.*.*]

VB6.0です。
タイトルの通りですがリストボックスのソートを行うにはどうすればよいのでしょうか?
ググってもそれらしきものは見つからなかったし、プロパティのSortedでもダメだったので
次の手が見つかりません。
わかる方、どうぞお教えください。
もしくはリストボックスのソートの方法がのってるサイト等をご存知でしたらこちらも
よろしくお願いします。

編集 削除
Geo=TK3  2005-08-24 13:56:27  No: 91752  IP: [192.*.*.*]

“先に”Sorted プロパティを True にした ListBox コント
ロールに AddItem すればソートかかる筈ですが、それでソート
されなかったって事でしょうか?

編集 削除
リース  2005-08-24 15:09:03  No: 91753  IP: [192.*.*.*]

あ、AddItemのときに有効になるんですね。
今までは
    lstPage.list(xx) = cboPage.list(yy)
みたいな感じで一つずつ入れてたからそれが間違いの原因だったようです。

それと便乗質問なんですが、この方法だと1〜10の数字をソートするとすれば結果は
    1  2  3  4  5  6  7  8  9  10
になりますよね?  これを
    10  9  8  7  6  5  4  3  2  1
のように逆にソートするのはどうするのでしょうか?

編集 削除
リース  2005-08-24 15:13:21  No: 91754  IP: [192.*.*.*]

すみません。
「1〜10」じゃなくて「01〜10」の間違いです・・・

編集 削除
さるべーじ  2005-08-24 15:28:04  No: 91755  IP: [192.*.*.*]

> のように逆にソートするのはどうするのでしょうか?

ListBoxには昇順ソートしか用意されていません。
ので、自力で降順ソートかけたアイテムを順に格納していくことになります。

簡単な方法としては、

  (1) 非表示で.Sorted=TrueのListBoxを用意して、必要なアイテム全部を投げ込む
  (2) 降順ListBoxに、(1)のListBoxの最後から順にアイテムを取り出して投げ込む

なんてのが。

編集 削除
特攻隊長まるるう  2005-08-24 15:32:11  No: 91756  IP: [192.*.*.*]

>あ、AddItemのときに有効になるんですね。
ヘルプの Sorted プロパティのページには
>メモ   AddItem メソッドを使うと、リスト内の特定の位置に項目が追加されて
>並べ替えられた順番が変更され、その後に追加された項目が正しく並べ替えられ
>ない場合があります。
と説明されていますが?

[ほんね]
ソートのプログラムくらい書けないのはプログラマじゃない。
バブルソートのアルゴリズムなんて小学生の算数の知識でも
軽く理解できる。
[たてまえ]
さるべーじさんに同じく
昇順に並べ変えたリストを最後から順に見れば降順です。

編集 削除
リース  2005-08-24 17:12:11  No: 91757  IP: [192.*.*.*]

おっしゃるリストの最後から取り出すことで降順ソートができました。
とりあえず今は基礎知識足りなさ過ぎのようなので、もう少し勉強することにします。
Geo=TK3様、さるべーじ様、特攻隊長まるるう様、どうもありがとうございました。

編集 削除