xpCommonControls の XPBaseList の紹介

List Controls に分類されているもう一つのほう、XPBaseList。
http://www.steepvalley.net/dev/projects/xpcc/xpcc_ctrls.aspx


一から作られたオリジナルのコントロールで、ASP.NETのrepeater controlを少しまねてるらしい。たくさんの項目を並べて表示したいけど、ListViewだと見づらい、そんなときに使えます。
1項目を表示するコントロールを自分で用意して、後はそれを並べて表示するのがXPBaseListの使い方です。スクロールや並べ方なんかの面倒を見てくれます。横幅を広げれば自動的に複数列に表示してくれたりします。


使う前に、あらかじめXPBaseListに並べて表示したいコントロールをまず作っておくのがポイント。
次にXPBaseListをデザインモードでぺたりと貼り付け、載せたいコントロールのサイズをControlSizeプロパティに指定します。AutoScrollをTrue、DockをFillなどにして自動的にスクロールやサイズ可変にして使う場合に真価を発揮します。

用意したコントロールをAdd()すると並べて表示されます。
自分のコントロールを載せる場合はこんな感じ。

MyControl myControl = new MyControl( str );
xpBaseList1.BeginUpdate();
xpBaseList1.Controls.Add( myControl );
xpBaseList1.EndUpdate();

載っているコントロールを全部消したいときは、こんな感じ。
xpBaseList1.Controls.Clear();


いろいろ使ってみましたが、速度も動作も問題ないです。XPListViewはWinXP専用でしたが、こちらはXPのdllには依存していないので2000や98でも動くはずです。
素のPanelにコントロールを並べる場合に比べて、Addするだけなので管理が楽、ホイールが効く、幅が変わったときに自動で横に並べたりしてくれる、といった利点があります。
楽できるところは楽をしてしまいましょう!