MultiListbox 項目は、リスト ボックスをロールアウトに配置するのに使用します。これは ListBox とは異なり、リスト内の複数の項目を選択できます。
構文は次のようになります。
MultiListBox <name> [<caption>] [items:<array_of_strings>] \
[selection:{ <number_array> | <number>}] \
[height:<number> ] [toolTip:<string>]
MultiListBox 項目の位置合わせの既定値は、#left
です。
例:
rollout test "test" ( multiListBox mlb "MultiListBox" items:#("A","B","C") selection:#(1,3) on mlb selected val do format "selected: % - %\n" val mlb.selection[val] on mlb doubleclicked val do format "doubleclicked: % - %\n" val mlb.selection[val] on mlb selectionEnd do format "selectionEnd: %\n" mlb.selection ) rof=newrolloutfloater "tester" 200 300 addrollout test rof test.mlb.items test.mlb.selection=1 test.mlb.selection=#(1,3) test.mlb.selection=#{}
パラメータ
items:
リスト内の項目であるテキスト文字列の配列です。
selection:
リスト内で現在選択されている項目のインデックスを示す整数の配列です。たとえば、最初の項目と 番目の項目が選択されている場合は、#{1,5}
となります。既定の(空の)選択値は #{}
です。
height:
項目行の数で示す MultiListBox 全体の高さです。既定値は 10 行です。MultiListBox で正確に N 項目を表示するには、高さを N に設定します。
toolTip:
MultiListBox のツールチップに使用するテキストを提供します。指定しない場合、ツールチップは表示されません。3ds Max 2017 以降で使用可能です。
プロパティ:
<listbox>.items Array of Strings
項目列の配列です。
<listbox>.selection BitArray
現在選択されている項目です。スクリプトを使って選択を設定する場合は、BitArray、数字の配列、または数字で選択を指定することができます。項目のリストが空配列の場合、値は 0 (ゼロ)になります。
イベント
on <listbox> selected <arg> do <expr>
ユーザがリスト内の項目を選択または選択解除したときに呼び出されます。<arg>
引数には、選択または選択解除された項目のインデックスが保持されます。複数の項目を一度に選択または選択解除できるため、このハンドラは選択が変更された各項目に対して、リストの先頭から順に呼び出されます。
on <listbox> selectionEnd do <expr>
ユーザがリスト内の項目を選択または選択解除したときに呼び出されますが、on selected ハンドラの呼び出しがすべて終わった後に呼び出されます。
リスト内をクリックしてリストのすべての項目を選択解除する方法はありません。ただし、Ctrl キーを押したまま最後の選択項目をクリックして、すべての項目を選択解除することは可能です。
リストの選択をクリアするには、selection=# を設定する[選択をクリア](Clear Selection)ボタンが必要です。
on <listbox> doubleClicked <arg> do <expr>
ユーザがリスト内の項目をダブルクリックしたときに呼び出されます。on selected ハンドラは、クリック、およびダブルクリックの 1 回目のクリックで常に呼び出されるので注意してください。<arg>
引数には、ダブルクリックされた項目の数が保持されます。
on <listbox> rightClick do <expr>
ユーザが Multilistbox コントロールを右クリックしたときに呼び出されます。
3ds Max 2010以降で使用可能です。