第2章-6 ListBoxの使い方(2)

今回はサンプルとしては次のようなものを作ります。
前回の(1)では1列のListBoxでしたが、今回は2列で作ってみます。基本は全く同じです が、プロパティの設定が若干違うのと、セルに表示項目を設定する方法が登場します。

list2-1

ListBoxはツールウィンドゥの中の赤丸で囲んである部分がそれです。
これをドラッグ&ドロップでWindow1上に配置します。大きさは適当に調節します。 このへんは(1)と全く同じです。

list2-2

ListBoxのプロパティは下の図のように設定します。left,top,Width,Heightのそれぞれの値は Windowにピッタリ収まるように設定しました。
ColumnCountは列の数です。今回は2列ですので2と設定します。次に、ColumnWidths ですが、40%-60%の比率にしました。ここではpixel単位でも設定できます。
あと、HasHeadingをチェックしておきます。これをチェックしておくと、列の名前が設定、 表示できます。それと、気分の問題ですがフォントをOsaka10ptにしておきました。
また、例によってListBoxに表示する項目はプログラム中で設定することにして InitialValueはつかいません。詳しくは(1)を参照して下さい。

list2-3

次に、コードを書きます。まず、ListBoxに表示する項目の設定を行います。全ての処理に先立って 設定する必要がありますのでopenイベントに次のように書きます。


Sub Open()
ListBox1.heading(0)="ホームページ"
ListBox1.heading(1)="URL"

ListBox1.AddFolder "アップルコンピュータ"
ListBox1.AddFolder "@nifty homepage"
ListBox1.AddFolder "Mac Fan Net"
ListBox1.AddFolder "◆WorP@holic わ〜ぱほりっく◆"
ListBox1.AddFolder "Muchy's Palmware Review"
ListBox1.AddFolder "パーム航空"
ListBox1.AddFolder "Visorの飼育記録"
ListBox1.AddFolder "Active Four 4x4Club"
ListBox1.AddFolder "KABU'S RESTAURANT"

ListBox1.cell(0,1) = "http://www.apple.co.jp/index.apple"
ListBox1.cell(1,1) = "http://www.nifty.com/"
ListBox1.cell(2,1) = "http://macfannet.mycom.co.jp/"
ListBox1.cell(3,1) = "http://www.worpaholic.com/"
ListBox1.cell(4,1) = "http://muchy.com/"
ListBox1.cell(5,1) = "http://palm.org/"
ListBox1.cell(6,1) = "http://www1.odn.ne.jp/palmbreeding/"
ListBox1.cell(7,1) = "http://www.sunfield.ne.jp/~kurumaya/top.html"
ListBox1.cell(8,1) = "http://member.nifty.ne.jp"
End Sub				
			

最初の2行でListBox1.heading()プロパティに文字列をセットすることで、列の名称が設定で きます。次に、ListBox1.AddFolderメソッドで項目名を指定し項目を追加します。この内容が いちばん左の列の表示内容になります。次に、ListBox1.cell(,)メソッドで2列目に表示する 内容を設定します。()内はセルの位置を表しますが、行番号、列番号どちらも'0'から始まります。
スクロールバーの制御は特に行いません。表示する項目数によって有効になったり、無効になったり 自動的にやってくれます。

次に、項目名の選択後の処理です。
このサンプルでは項目名をダブルクリックしたらそれが選択されたとして、項目名を右のStaticTextに 表示させます。
コードを各場所はコードエディタのコントロールListBox1DoubleClickに 次のように書きます。


Sub DoubleClick()
  StaticText1.Text = ListBox1.cell(ListBox1.ListIndex,0) + 
          " [ "+ ListBox1.cell(ListBox1.ListIndex,1) + " ] "
End Sub				
			

この1行でダブルクリックされた行の2つの列の内容を合わせて表示します。

目次に戻る