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

解決


リース  2005-08-24 22:38:38  No: 91751

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


Geo=TK3  2005-08-24 22:56:27  No: 91752

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


リース  2005-08-25 00:09:03  No: 91753

あ、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-25 00:13:21  No: 91754

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


さるべーじ  2005-08-25 00:28:04  No: 91755

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

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

簡単な方法としては、

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

なんてのが。


特攻隊長まるるう  2005-08-25 00:32:11  No: 91756

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

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


リース  2005-08-25 02:12:11  No: 91757

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加