C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ListViewColumnHeaderにソートの三角を出すには?


(過去ログ 7 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■7115 / inTopicNo.1)  ListViewColumnHeaderにソートの三角を出すには?
  
□投稿者/ 一羽 二等兵(1回)-(2006/10/03(Tue) 15:41:13)

分類:[C#] 


分類:[C#] 

皆様、はじめまして。C#(VS.NET 2005)をはじめて1月のかずはと申します。

VC++で作成していたDialogベースアプリケーションをC#で作り直しております。
FormにListViewを貼り付け、ViewをDetailsに設定し、ColumnHeaderをクリックすることでソートのキーとする列や降順/昇順の切り替えを行うようにしました。
続いて、エクスプローラのように、ソートのキーとしているColumnHeaderに上三角(昇順)または下三角(降順)を表示しようと思ったところで躓きました。

VC++ではHDITEMを使用し、HDF_SORTDOWNまたはHDF_SORTUPというフォーマットをColumnHeaderに対し指定すると、エクスプローラと同じ見た目の三角を表示することができました。
しかし、これに相当するプロパティやメソッドを、MSDNの中から発見することができませんでした。

ColumnHeaderのTextに三角を自分で追加すると、エクスプローラのような見た目にはならず、列幅が足りないときは三角から表示が省略されてしまいますので、求めているものとは異なります。

CodeGuruやCode Projectも探しましたが、オーナードローでColumnHeaderにImageを表示している例ぐらいしか見つかりませんでした。

あの三角は、.NET Frameworks 2.0では未だ提供されていないのでしょうか?

何かご存知の方がいらっしゃればと思い、投稿させていただきます。m(_ _)m

0
引用返信 編集キー/
■7120 / inTopicNo.2)  Re[1]: ListViewColumnHeaderにソートの三角を出すには?
□投稿者/ まどか 少将(253回)-(2006/10/03(Tue) 16:55:14)

分類:[C#] 

#VC++はわかりませんし、HDF_SORTDOWNのようなメッセージも今探したら見つけることができませんでした。

> オーナードローでColumnHeaderにImageを表示している例ぐらいしか見つかりませんでした。

それしかないと思います。
エクスプローラを操作してみましたが、イメージをAlign=Rightで配置して動かしてるようですね。

> あの三角は、.NET Frameworks 2.0では未だ提供されていないのでしょうか?

ありません。かつ、私は今後も無いと思います。
あの三角がエクスプローラ固有の表現(GUI)である(と思う)からです。
#他のリストビューで見かけたこともありませんし。

0
引用返信 編集キー/
■7147 / inTopicNo.3)  Re[2]: ListViewColumnHeaderにソートの三角を出すには?
□投稿者/ 一羽 二等兵(2回)-(2006/10/03(Tue) 21:38:30)

分類:[C#] 

上手く投稿できなかったようなので、再度投稿します。もし、被ったらごめんなさい。


すばやいレスポンスありがとうございました。

No7120に返信(まどかさんの記事)
> #VC++はわかりませんし、HDF_SORTDOWNのようなメッセージも今探したら見つけることができませんでした。
説明不足で申し訳ありません。
VC++(MFC)のListViewコントロールでは、HDITEMという構造体が用意されていて、この構造体を使用してColumnHeaderのフォーマットを指定することができます。HDF_SORTDOWNは、その指定できる定数の1つです。

こんな感じです。
----------------------------------
HDITEM headerItem;
headerItem.mask = HDI_FORMAT;
headerItem.fmt = HDF_SORTDOWN | HDF_STRING; // 下三角と文字列を表示するフォーマットを指定
pHeader->SetItem(_sortTargetColumn, &headerItem); // pHeaderはListViewのColumnHeaderコントロール
----------------------------------

>>あの三角は、.NET Frameworks 2.0では未だ提供されていないのでしょうか?
> ありません。
残念……orz
しかし、すっきりしました。ありがとうございます。
あの三角に時間をかけることが許される状況でないので、きっぱり諦めます。

> #他のリストビューで見かけたこともありませんし。
上記のフォーマット指定でソートの三角(HDF_SORTDOWN/HDF_SORTUP)が指定できるようになったのがWindows XPからなので、未だ使用しているアプリケーションが少ないのかもしれません。
しかし、サンプルコードはWeb上に一杯あるので、他の言語でも使用できるようになってくれると良いなぁと私は思います。うわさの.NET 3.0に期待を……(^^;

どうもありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -