GUI部品図鑑

その9 リストボックス

リストボックスとは、文字通りリストを表示するための物である。リストとは多数の項目を一定の形式に従って書き並べたもので、コンピュータ上では大抵の場合、項目が縦に並ぶという形式になっている。この項目のことを「行(row)」といい、これが任意の数だけ並ぶというのが基本的なリストボックスの構造である。もう少し複雑になると、行が複数の項目に分割される。分割された部分を「列(column)」といい、要は行と列の二次元の表のようになる。そう見えるだけで、構造的には列が無い時と同じく一次元である。なぜなら行の数は際限なく数が増える可能性があるが、列の数は基本的に増減しないからだ。

列を持つリストボックスには、各列がどのような情報を持っているのかを示す列ヘッダが付く場合が多い。ここまで行くと内部的な名称がリストボックスでは無いかもしれないが(たとえばテーブルなど)、ここではリストボックスの一種として扱う。

リストボックスの役割は、項目の一覧を見せ、そしてその中から選ばせることにある。選択肢の中から項目を選ばせるという機能はチェックボックスとラジオボタンにもあるが、リストボックスは項目が固定でないという点が違う。つまり項目を増やしたり減らしたり、あるいは変化させたりということが可能なのだ。あらかじめ選択肢の内容が分からないものや、ユーザーによる編集などで選択肢の数が増減する場合に用いられる。

項目の選択

リストボックスの項目の選択のやり方は、項目をクリックするだけという簡単なものだ。選択された項目は強調表示される。一般的には項目の背景の色が選択されたことを示す色に変化する。それに伴い文字の色も変化するかもしれない(選択色と文字の色が同じでは読めなくなってしまう)。一般的なリストボックスでは、新たな項目を選択すると、以前に選択していた項目の選択が解除される。これは選択位置が移動するといったほうが分かりやすいかもしれない。ここまでは直感的で分かりやすいのだが、リストボックスでは複数の項目を同時に選択することを許している場合もある。この時の操作方法はなかなかにややこしい。

まずはシフトキーを押しながらクリック。これにより、選択済みの項目とクリックした項目との間の項目が全て選択される。まず選択したい項目郡の一番上をクリックし、次に一番下をシフトキーを押しながらクリックするというのが基本的な使い方である。要は選択範囲の始点と終点を示すわけだ。さらにシフト+クリックすることで、選択範囲を変更することができる。選択範囲より下をクリックすると下方に拡張され、上をクリックすると上方に拡張される。選択範囲の途中をクリックすると選択範囲が縮小されるわけだが、こちらは拡張ほど易しくない。選択範囲のちょうど真ん中をクリックした場合を考えてみよう。果たしてどちら側が縮小されるべきなのだろうか。

そしてメタキー+クリック(MacOSではコマンドキー、WindowsではCtrlキー)。これは項目を個別に選択及び解除を行う。シフト+クリックは連続した部分しか選択できないが、こちらは飛び飛びの項目も選択することができる。選択範囲が飛び飛びの場合、シフト+クリックしたときにどうなるかは、実際に試して見ないとなんともいえないところがある。

複数選択可能なリストボックスの最大の弱点は、選択での誤操作のしやすさだ。1回でもうっかり普通のクリックしてしまうと、今まで苦労して選択してきたものが全て失われてしまう。

項目の並び替え

列ヘッダ付きのリストとして最もよく見かけるのはファイルブラウザであるFinderやExplorerだろう。そこで見られるように、列ヘッダは情報を表示するだけではなく、項目の並び順を制御するのにも使われる。選択した列の内容で項目が並び替えられるというわけである。

[画像]
順序切り替えボタンのある列ヘッダ

並び順の制御にはもう1種類ある。昇順と降順である。これを切り替えるには現行では2つの作法がある。ひとつは選択中の列ヘッダをもう一度クリックする方法。もうひとつは列ヘッダに含まれる順序切り替えボタンである。

[画像]
項目移動ボタンの例(IE:mac 5.2.2の言語設定)

また、項目の並び順によって優先順位等を指定するものもある。このような物はユーザーの手によって項目を並び替えられる手段が用意されている。これもまた2通りの方法がある。選択された項目を上または下に移動させるボタンを用意するか、ドラッグアンドドロップで移動させるかである。後者は物理的な並び替えでも同じようなことを行うため非常に直感的であるが、ドラッグアンドドロップ――すなわちマウスが使えないと行えないというのが欠点である。


りゅう/rryu@t3.rim.or.jp