xpCommonControls の XPListView

xpCommonControls には ListControls に2つのコントロールがあって、そのうちの XPListView の使い方。

http://www.steepvalley.net/dev/projects/xpcc/xpcc_ctrls.aspx

通常のListViewにXPで加わったタイル表示とグループ分け表示を追加したもの。動作環境はXPのみ。comctl32.dllのVer6.0依存。Lunaにしてないとどうなるんだろ。


タイル表示をいろいろ試してみました。デザイン画面で SteepValley.Windows.Forms.XPListView を貼り付けて View プロパティを Tile にするとタイルが使えます。 Tile サイズも変更可。


使い方のポイントはColmnsとTileColmns。この二つに設定されているものが表示されます。1項目を、項目名とサブ項目名をあわせて先頭から5つ分の5行表示するとします。まずはColmnsに適当に5つ指定。次にTileColmnsに、

xpListView1.TileColumns = new int[] { 1, 2, 3, 4, 5 };

のように指定します。項目名が1でサブ項目の1つ目の要素が2、2つ目の要素が3、…という対応になっています。

XPListViewItem lvitem = new XPListViewItem(
 new String[] { "あ", "い", "う", "え", "お" } );

xpListView1.TileColumns = new int[] { 1, 2, 3, 3 };

とすると、「あ い う う」が表示されます。実際はスペースじゃなくて改行ですが。


動的にListViewに追加したり削除したりするソースを書いたのですが、TileColumnsは項目を追加するたびに指定してやらないと、きちんと表示されませんでした。


ColmnsがTileColmnsより少ないときは、Colmnsの数までしか表示されません。このへんはcomctl32の制限かな?直接いじったことないので分かりません。


1行目をボールドにするのは、こんな感じ。デモより。

xpListView1.SetColumnStyle( 0, new Font( xpListView1.Font, FontStyle.Bold ), xpListView1.ForeColor, xpListView1.BackColor );


とまあ、こんな感じで、込み入った項目を表示するときにかなり便利です。