Listbox UI コントロール

ユーザ インタフェース コントロール > 共通プロパティ > レイアウト > タイプ > Listbox

 

   

ユーザ インタフェースの作成 - クイック ナビゲーション

Listbox コントロールは、リスト ボックスをロールアウトに配置するのに使用します。

これはドロップダウン リストとは異なり、リスト全体が常にロールアウトに表示されます。

コンボボックスとは異なり、上部に編集テキスト フィールドはなく、スクロール可能な簡単なリストだけがあります。ユーザはリストをスクロールするか、あるいはクリックして項目を選択できます。

構文は次のようになります。

listbox <name> [<caption>] [items:<array_of_strings>] [selection:<number>] [height:<number>] [readOnly:<boolean>] 	 

listbox 項目の位置合わせの既定値は、 #left です。

   

パラメータ

items:   

リスト内の項目であるテキスト文字列の配列です。

   

selection: 

現在選択されているリスト内の項目番号。基数は 1 です。選択の既定値は 1 です。

   

height: 

項目行の数で示す listbox 全体の高さ。既定値は 10 行です。 listBox で正確に N 項目を表示するには、高さを N に設定します。

高さの最小値は 1 行です。

   

readOnly: 

true に設定した場合、ユーザはリストから項目を選択できません。false に設定するか何も指定しなかった場合、ユーザはリストから項目を選択できます。

   

プロパティ:

<listbox>.items Array Of Strings 

項目列の配列です。

   

<listbox>.selection Integer 

現在選択されている項目番号。基数は 1 です。項目のリストが空配列の場合、値は 0 (ゼロ)になります。

   

<listbox>.selected String 

現在選択されている項目のテキストです。個々の項目を置換して items 配列全体をリセットするために使用します。項目リストが空の配列の場合、この値は undefined です。

   

<listbox>.readOnly 

true に設定した場合、ユーザはリストから項目を選択できません。 false に設定した場合、ユーザはリストから項目を選択できます。

   

<listbox>.width Integer 

リストボックスのリスト ウィンドウの幅をピクセル単位で取得/設定します。

   

<listbox>.height Integer 

リストボックスのリスト ウィンドウの高さをピクセル単位で取得/設定します。

注:コンストラクタ パラメータとして、 height: テキストの行によって高さを指定し、 .height プロパティは高さをピクセル単位で指定します。

   

イベント

on <listbox> selected <arg> do <expr> 

ユーザがリスト内の項目を選択したときに呼び出されます。引数 <arg> には、新しい、現在の選択項目番号が入ります。

   

on <listbox> doubleClicked <arg> do <expr> 

ユーザがリスト内の項目をダブルクリックしたときに呼び出されます。 on selected ハンドラは、クリック、およびダブルクリックの 1 回目のクリックで常に呼び出されるので注意してください。 <arg> 引数には、ダブルクリックされた項目の数が保持されます。

   

on <listbox> rightClick [<arg>] do <expr> 

リスト内の項目を右クリックしたときに呼び出されます。

オプションの <arg> 引数を指定すると、右クリックした項目のインデックスが含まれます。

3ds Max 2010 以降で使用可能です。

リストボックスの例:

rollout objectKiller "Object Killer"
(
--Define a list box, collect the names of all scene objects and
--assign them to the items array
listbox objectToKill "Objects:" items:(for o in objects collect o.name)
--If the user clicked a name on the list,
--get the name from the .items array by index
--then get the node by name and select it.
--COMPARE to the doubleClicked handler below which performs a
--similar task using a slightly different approach.
--Both ways are valid!
on objectToKill selected nameIndex do
select (getNodeByName objectToKill.items[nameIndex])
on objectToKill doubleClicked itm do
(
--Get node using its name from the .selected property and delete it:
delete (getNodeByName objectToKill.selected)
--Get the items into a temporary array:
temp = objectToKill.items
--Delete the doubleckicked item by index
--the local variable itm contains the index!
deleteItem temp itm
--Assign the result back to the items array:
objectToKill.items = temp
)
)
createDialog objectKiller--create a dialog from the rolloutParameters

関連事項