tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: ListViewに第2ソートキー
投稿日: 2008/06/12(Thu) 19:40
投稿者魔界の仮面弁士
> ListViewに第2ソートキーを設定する事って
> 出来ませんでしょうか?

たとえば、幅ゼロの列を用意しておき、そこに「第1キーと第2キーを連結したデータ」を
入れておくという手があります。で、ソートはその幅ゼロ列を使って行う、と。

この方法の問題は、幅ゼロの列が邪魔(ユーザが列幅を調整すると見えてしまう)な点です。



余計な隠し列を使いたくない場合には、下記のように API を使ってソートできます。
http://support.microsoft.com/kb/170884

LVM_SORTITEMS のメッセージを投げると、行を並び替えるために、AddressOf で指定した
メソッドがイベントのように呼び出されます。
(上記のサンプルでは、 Function CompareDates(…) のメソッドです)

このメソッドでは、第1引数、第2引数に行データ(のハンドル)が渡されますので、
それらの行を比較して、「行1<行2」なら負数、「行1=行2」ならゼロ、
「行1>行2」なら正数を返すように実装すれば OK です。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。