# リストボックスコントロール

マニュアル > コントロールリファレンス > 基本 > # リストボックスコントロール |

| リストボックスコントロール (ListBox)
プロパティ | メソッド | イベント
リストボックスコントロールは、複数行のテキスト一覧を表示できます。また、その中から１つを選択することができます。 テキストリストの設定
リストボックスコントロールへテキストリスト（テキストの一覧）を設定する方法は以下の３つです。 １）TextListプロパティであらかじめ設定しておく。 ２）AddTextメソッドを用いてスクリプトから１行ずつ追加していく。 ３）SetTextListメソッドを用いてスクリプトからまとめて設定する。 １）TextListプロパティにあらかじめ設定しておく。 エディタでTextListプロパティにあらかじめ設定しておきます。 ブラウザで表示時、自動的に設定されたテキストリストが表示されます。複数行設定したい場合は改行して入力します。 ２）AddTextメソッドを用いて１行ずつ追加していく。 下記のサンプルでは、初期時に1000行をリストボックスへAddTextで追加しています。
    event OnInitialize()
    {
     for (var i = 0; i < 1000; i++)
     {
      this.AddText("Program line : " & ::CNumStr(i, 0, 4, F));
     }
    }
３）SetTextListメソッドを用いてまとめて設定する。 下記のサンプルのLoadボタンは、ボタンを押すと"samplelist.txt"ファイルを読み込み、リストコントロールに設定します。
    event OnMouseUp(button)
    {
     var text;
     if (::LoadTextFile("samplelist.txt", text))
     {
      parent.EditList.SetTextList(text);
     }
    }
| TextListプロパティはテキストリストの初期設定を定義するときに使用してください。スクリプト内でテキストリストをまとめて設定/取得を行いたい場合は、SetTextList/GetTextListメソッドを使用して下さい。
テキストリストの編集について
リストボックスコントロールには、テキストリストを編集するためのメソッドが用意されています。
AddText | 行を末尾に追加する。
InsertText | 行を挿入する。
DelText | 行を削除する。
SetText | 指定した行の文字を変更する。
下記は上記メソッドを使用したサンプルです。 各メソッドの呼び出し方については、サンプルの上記ボタンに記述されているスクリプトを参考にしてください。
テキストリストの選択について
リストボックスコントロールは、複数行のテキスト一覧の中から１つを選択することができます。選択された行の表示色はSelectColorプロパティで指定された色になります。 １）オペレータが行の選択を変更すると、OnSelectChangedイベントが呼び出されます。 下記のサンプルでは、OnSelectChangedイベントを用いて、現在選択されている行のインデックスとテキストをエディットボックスへ表示しています。
    event OnSelectChanged(index, text)
    {
     parent.ModifyEdit.Text = text;
     parent.IndexLabel.Text = index;
    }
２）現在選択されている行のインデックス（0から始まる行番号）はSelectIndexプロパティで取得できます。 SelectIndexに出力バインド（例 OUT : $D0）することにより、現在選択されているインデックスがタグにリアルタイムに出力されます。下記のサンプルでは、SelectIndexプロパティに$D0タグをバインドしています。 一番上の行を選択すると$D0は0になります。次の行へ移動するごとに、$D0の値が1,2,3…になります。 ３）SelectIndexプロパティに入力バインド（例 IN : $D0）することにより、タグの値に従って、選択行をリアルタイムに変更させることができます。 下記のサンプルでは、SelectIndexプロパティに500msごとに1ずつ増加するインクリメントタグ（$INC500）を入力バインドしています。 ４）現在選択されている行の内容（テキスト）を知りたい場合は、SelectIndexの代わりにSelectTextプロパティを利用します。
スクロールタイプについて
選択行が移動した時に、自動的にスクロールさせることができます。 ScrollTypeプロパティが"SCROLL"の場合、選択行が画面より下や上になると、選択行が画面からはみ出ないように自動的にスクロールが行われます。 また、ScrollTypeプロパティが"PAGE"の場合は、選択行が画面より下や上になると、１ページ分ページアップやページダウンが行われ、選択行が画面からはみ出ないように動作します。下記はスクロールタイプのサンプルです。
| ScrollHeadLines/ ScrollFootLinesプロパティでは、自動スクロールが行われる際に、現在選択中の行の上下に常に表示させておきたい行数を指定することができます。上記サンプルではそれぞれ1を設定しているので、自動スクロールの発生時に現在選択中の行の下に常に1行表示される動作となります。
GetData/SetDataメソッドについて
各行には表示されるテキスト以外に、リストに表示されないデータを格納させておくことができます。 この機能は、テキスト以外の情報を各行に保存したい時に利用できます。データの型は汎用で、ブール、数値、文字、時刻や配列（多次元も含む）も格納できます。 FindDataメソッドは、それらのデータを元に検索を行います。 検索の際は、値をいったん文字に変換して検索しています。配列の場合、最初の要素が検索のデータとして利用されます。
マウスホイール操作について
リストボックスコントロールはマウスホイール（上下スクロール）に対応しています。