リストボックス
リストボックスは複合アクティブオブジェクトで、同期化された複数列 (カラムとも呼びます) の形式でデータの表示・入力がおこなえます。 リストボックスは、エンティティセレクションやレコードセレクションなどのデータベースコンテンツのほか、コレクションや配列などのランゲージコンテンツと紐づけることができます。 データ入力、列の並べ替え、イベント管理、外観のカスタマイズ、 列の移動など、リストボックスには高度な機能が備わっています。
リストボックスには 1つ以上の列があり、その内容が自動的に同期化されます。 理論上、列数に制限はありません (マシンのリソースに依存します)。
概要
基本のユーザー機能
実行中、リストボックスはリストとしてデータを表示し、入力を受け付けます。 セルを編集可能にするには (その列について入力が許可されていれば)、セル上で2回クリックします:
リストボックスのセルには、複数行のテキストを入力・表示できます。 セル内で改行するには、Ctrl+Return (Windows) または Command+Return (macOS) を押します。
セルにはブールやピクチャー、日付、時間、数値も表示することができます。 ヘッダーをクリックすると、列の値をソートできます (標準ソート)。 すべての列が自動で同期されます。
またそれぞれの列幅を変更できるほか、ユーザーはマウスを使用して 列 や 行 の順番を (そのアクションが許可されていれば) 入れ替えることもできます。 リストボックスは 階層モード で使用することもできます。
ユーザーは標準のショートカットを使用して 1つ以上の行を選択できます。Shift+クリック で連続した行を、Ctrl+クリック (Windows) や Command+クリック (macOS) で非連続行を選択できます。
リストボックスの構成要素
リストボックスオブジェクトは、以下4つの項目で構成されます:
- リストボックスオブジェクトの全体
- 列
- 列ヘッダー
- 列フッター
それぞれが独自のオブジェクト名や固有のプロパティを持ちます。 たとえば、列の数や、交互に使用する行の背景色などはリストボックスオブジェクトのプロパティで指定し、各列の幅は列プロパティ、ヘッダーのフォントはヘッダープロパティで指定します。
リストボックスオブジェクトやリストボックスの各列に対して、オブジェクトメソッドを設定することができます。 オブジェクトメソッドの呼び出しは、次の順でおこなわれます:
- 各列のオブジェクトメソッド
- リストボックスのオブジェクトメソッド
ヘッダー と フッター で発生したイベントは、その列のオブジェクトメソッドが受け取ります。
リストボックスの型
リストボックスには複数のタイプがあり、動作やプロパティの点で異なります。 リストボックスの型は データソースプロパティ で定義します:
- 配列: 各列に 4D 配列を割り当てます。 配列タイプのリ ストボックスは 階層リストボックス として表示することができます。
- セレクション (カレントセレクション または 命名セレクション): 各列に式 (たとえばフィールド) を割り当てます。それぞれの行はセレクションのレコードを基に評価されます。
- コレクションまたはエンティティセレクション: 各列に式を割り当てます。各行の中身はコレクションの要素ごと、あるいはエンティティセレクションのエンティティごとに評価されます。
1つのリストボックス内に、複数のデータソースタイプを組み合わせて指定することはできません。 データソースは、リストボックス作成時に定義され、 プログラムによって後から変更することはできません。
リストボックスの管理
リストボックスオブジェクトはプロパティによってあらかじめ設定可能なほか、プログラムにより動的に管理することもできます。
4D ランゲージにはリストボックス関連のコマンドをまとめた "リストボックス" テーマが専用に設けられていますが、"オブジェクトプロパティ" コマンドや EDIT ITEM
、Displayed line number
コマンドなど、ほかのテーマのコマンドも利用することができます。 詳細については 4D ランゲージリファレンスマニュアル のリストボックスコマンド一覧を参照してください。
リストボックスオブジェクト
配列リストボックス
配列リストボックスでは、それぞれの列に 4D の 1次元配列を割り当てなければなりません。ポインター配列を除きすべてのタイプの配列を使用できま す。 行数は配列の要素数により決定されます。
デフォルトで 4D は各列に “ColumnX” という名前を割り当てます。 この配列変数名は 列のプロパティ で変更できます (プロパティリストの 変数あるいは式 プロパティを使用します)。 列ごとの表示フォーマットを指定するには、OBJECT SET FORMAT
コマンドも使用できます。
配列タイプのリストボックスは、特別なメカニズムをもつ 階層モー ド で表示することができます。
配列タイプのリストボックスでは、入力あるいは表示される値は 4Dランゲージで制御します。 列に 選択リスト を割り当てて、データ入力を制御することもできます。
リストボックスのハイレベルコマンド (LISTBOX INSERT ROWS
や LISTBOX DELETE ROWS
等) や配列操作コマンドを使用して、列の値を管理します。 たとえば、列の内容を初期化するには、以下の命令を使用できます:
ARRAY TEXT(varCol;size)
リストを使用することもできます:
LIST TO ARRAY("ListName";varCol)
警告: 異なる配列サイズの列がリストボックスに含まれる場合、もっとも小さい配列サイズの数だけを表示します。 そのため、各配列の要素数は同じにしなければなりません。 リストボックスの列が一つでも空の場合 (ランゲージにより配列が正しく定義またはサイズ設定されなかったときに発生します)、リストボックスは何も表示しません。
セレクションリストボックス
このタイプのリストボックスでは、列ごとにフィールド (例: [Employees]LastName
) や式を割り当てます。 式は 1つ以上のフィールド (たとえば [Employees]FirstName+“ ”[Employees]LastName
) または単にフォーミュラ (たとえば String(Milliseconds)
) を使用できます。 式にはプロジェクトメソッド、変数、あるいは配列項目も指定できます。 カラムをプログラムで変更するには、LISTBOX SET COLUMN FORMULA
および LISTBOX INSERT COLUMN FORMULA
コマンドを使用します。
それぞれの行はセレクションのレコードを基に評価されます。セレクションは カレントセレクション または 命名セレクションです。
デー タソースがカレントセレクションである場合、データベースに対しておこなわれた変更はリストボックスに自動で反映され、またリストボックスへの変更も自動で データベースに適用されます。 つまりカレントセレクションは常に両方で同じです。
コレクションまたはエンティティセレクションリストボックス
このタイプのリストボックスでは、各カラムに式が割り当てられている必要があります。 各行の中身はコレクション要素ごと、あるいはエンティティセレクションのエンティティごとに評価されます。
コレクションの各要素、またはエンティティセレクションの各エンティティは、This キーワードを用いてオブジェクトとして取得します。 カラムの式にはプロパティパス、プロジェクトメソッド、変数、あるいはフォーミュラが指定可能で、This
を通して得た各 エンティティあるいはコレクション要素オブジェクトが利用できます。例: This.<propertyPath>
(あるいはスカラー値のコレクションの場合は This.value
)。 カラムをプログラムで変更するには、LISTBOX SET COLUMN FORMULA
および LISTBOX INSERT COLUMN FORMULA
コマンドを使用します。
データソースがエンティティセレクションの場合、リストボックス側に対しておこなった変更は自動的にデータベースに保存されます。 その一方で、データベース側に対しておこなった変更は、該当エンティティがリロードされてはじめてリストボックス側に反映されます。
エンティティが削除されると、その参照は undefined の値とともにエンティティセレクションに 残り、リストボックスには空白の行が表示されます。 この場合、.clean()
関数を呼び出すことで、削除されたエンティティ参照が含まれないエンティティセレクションを新規に取得することがで きます。
データソースがコレクションの場合、リストボックス内の値に変更をおこなった場合、その変更はコレクションにも反映されます。 その一方で、コレクションに対して、たとえば Collectionクラス の様々な関数を使用して変更をおこなった場合、コレクション変数を自らに再代入することにより明示的に 4D に通知する必要があり、それによってリストボックスのコンテンツは更新されます。 例:
myCol:=myCol.push("new value") // リストボックスに new value を表示
プロパティ一覧
提供されるプロパティはリストボックスのタイプに依存します。
プロパティ | 配列リストボックス | セレクションリストボックス | コレクションまたはエンティティセレクションリストボックス |
---|---|---|---|
交互に使用する背景色 | ○ | ○ | ○ |
背景色 | ○ | ○ | ○ |
太字 | ○ | ○ | ○ |
背景色式 | ○ | ○ | |
境界線スタイル | ○ | ○ | ○ |
下 | ○ | ○ | ○ |
クラス | ○ | ○ | ○ |
コレクションまたはエンティティセレクション | ○ | ○ | |
カラム自動リサイズ | ○ | ○ | ○ |
カレントの項目 | ○ | ||
カレントの項目の位置 | ○ | ||
データソース | ○ | ○ | ○ |
詳細フォーム名 | ○ | ||
ヘッダーを表示 | ○ | ○ | ○ |
フッターを表示 | ○ | ○ | ○ |
行をダブルクリック | ○ | ||
ドラッグ有効 | ○ | ○ | ○ |
ドロップ有効 | ○ | ○ | ○ |
フォーカス可 | ○ | ○ | ○ |
フォント | ○ | ○ | ○ |
フォントカラー | ○ | ○ | ○ |
フォントカラー式 | ○ | ○ | |
フォントサイズ | ○ | ○ | ○ |
高さ (リストボックス) | ○ | ○ | ○ |
高さ (ヘッダー) | ○ | ○ | ○ |
高さ (フッター) | ○ | ○ | ○ |
追加の空白の行を非表示 | ○ | ○ | ○ |
フォーカスの四角を隠す | ○ | ○ | ○ |
セレクションハイライトを非表示 | ○ | ○ | ○ |
階層リストボックス | ○ | ||
ハイライトセット | ○ | ||
横揃え | ○ | ○ | ○ |
横線カラー | ○ | ○ | ○ |
横方向パディング | ○ | ○ | ○ |
横スクロールバー | ○ | ○ | ○ |
横方向サイズ変更 | ○ | ○ | ○ |
イタリック | ○ | ○ | ○ |
左 | ○ | ○ | ○ |
マスターテーブル | ○ | ||
メタ情報式 | ○ | ||
メソッド | ○ | ○ | ○ |
行の移動可 | ○ | ||
命名セレクション | ○ | ||
列数 | ○ | ○ | ○ |
スクロールしない列数 | ○ | ○ | ○ |
ドラッグしない列数 | ○ | ○ | ○ |
オブジェクト名 | ○ | ○ | ○ |
右 | ○ | ○ | ○ |
行背景色配列 | ○ | ||
行コントロール配列 | ○ | ||
行フォントカラー配列 | ○ | ||
行の高さ | ○ | ||
行高さ配列 | ○ | ||
行スタイル配列 | ○ | ||
選択された項目 | ○ | ||
選択モード | ○ | ○ | ○ |
シングルクリック編集 | ○ | ○ | ○ |
ソート可 | ○ | ○ | ○ |
標準アクション | ○ | ||
スタイル式 | ○ | ○ | |
上 | ○ | ○ | ○ |
透過 | ○ | ○ | ○ |
タイプ | ○ | ○ | ○ |
下線 | ○ | ○ | ○ |
変数あるいは式 | ○ | ○ | |
縦揃え | ○ | ○ | ○ |
縦線カラー | ○ | ○ | ○ |
縦方向パディング | ○ | ○ | ○ |
縦スクロールバー | ○ | ○ | ○ |
縦方向サイズ変更 | ○ | ○ | ○ |
表示状態 | ○ | ○ | ○ |
幅 | ○ | ○ | ○ |
リストボックスの列、ヘッダーおよびフッターにもそれぞれ固有のプロパティがあります。
フォームイベント
フォームイベント | 取得される追加プロパティ (メインプロパティについてはForm event 参照) | コメント |
---|---|---|
On After Edit | ||
On After Keystroke | ||
On After Sort | 複合フォーミュラはソート不可 (例: This.firstName + This.lastName) | |
On Alternative Click | 配列リストボックスのみ | |
On Before Data Entry | ||
On Before Keystroke | ||
On Begin Drag Over | ||
On Clicked | ||
On Close Detail | カレントセレクション&命名セレクションリストボックスのみ | |
On Collapse | 階層リストボックスのみ | |
On Column Moved | ||
On Column Resize | ||
On Data Change | ||
On Delete Action | ||
On Display Detail | ||
On Double Clicked | ||
On Drag Over | ||
On Drop | ||
On Expand | 階層リストボックスのみ | |
On Footer Click | 配列、カレントセレクション&命名セレクションリストボックスのみ | |
On Getting Focus | 追加プロパティの取得はセル編集時のみ | |
On Header Click | ||
On Load | ||
On Losing Focus | 追加プロパティの取得はセル編集完了時のみ | |
On Mouse Enter | ||
On Mouse Leave | ||
On Mouse Move | ||
On Open Detail | カレントセレクション&命名セレクションリストボックスのみ | |
On Row Moved | 配列リストボックスのみ | |
On Selection Change | ||
On Scroll | ||
On Unload |
追加プロパティ
リストボックスやリストボックス列オブジェクトにて発生するフォームイベントは、次の追加プロパティを返すことがあります:
プロパティ | 型 | 説明 |
---|---|---|
area | text | リストボックスオブジェクトエリア ("header", "footer", "cell") |
areaName | text | エリアの名称 |
column | longint | 列番号 |
columnName | text | 列の名称 |
footerName | text | フッターの名称 |
headerName | text | ヘッダーの名称 |
horizontalScroll | longint | 右方向スクロールの場合は正の数値、左方向の場合は負の数値 |
isRowSelected | boolean | 行が選択されていれば true、でなければ false |
newPosition | longint | 列あるいは行の変更後の位置 |
newSize | longint | 列または行の変更後のサイズ (ピクセル単位) |
oldPosition | longint | 列あるいは行の変更前の位置 |
oldSize | longint | 列または行の変更前のサイズ (ピクセル単位) |
row | longint | 行番号 |
verticalScroll | longint | 下方向スクロールの場合は正の数値、上方向の場合は負の数値 |
"偽" カラムや存在しないカラムにてイベントが発生した場合には、主に空の文字列が返されます。
リストボックス列
リストボックスは、それぞれ固有のプロパティを持つ 1つ以上の列オブジェクトから構成されています。 列を選択するには、フォームエディターでリストボックスオブジェクトが選択されているときに任意の列をクリックします:
リストボックスの各列毎に標準のプロパティ (テキスト、背景色など) を設定できます。設定すると、リストボックスに対する設定よりもこちらが優先されます。
配列型リストボックスのカラムについては、式タイプ (テキスト、数値、整数、ブール、ピクチャー、時間、日付、あるいはオブジェクト) を定義することができます。
列特有のプロパティ
オブジェクト名 - 変数あるいは式 - 式タイプ (配列リストボックス列) - CSSクラス - デフォルト値 - 選択リスト - 式 - データタイプ (セレクションおよびコレクションリストボックス列) - 関連付け - 幅 - 自動行高 - 最小幅 - 最大幅 - 横方向パディング - 縦方向パディング - サイズ変更可 - 入力可 - 入力フィルター - 指定リスト - 除外リスト - 表示タイプ - 文字フォーマット - 数値フォーマット - テキスト (True時)/テキスト (False時) - 日付フォーマット - 時間フォーマット - ピクチャーフォーマット - 非表示 - ワードラップ - エリプシスを使用して省略 - 背景色 - 交互に使用する背景色 - 行背景色配列 - 背景色式 - フォント - 太字 - イタリック - 下線 - 行スタイル配列 - スタイル式 - フォントカラー - 行フォントカラー配列 - 横揃え - 縦揃え - マルチスタイル - メソッド
フォームイベント
フォームイベント | 取得される追加プロパティ (メインプロパティについてはForm event 参照) | コメント |
---|---|---|
On After Edit | ||
On After Keystroke | ||
On After Sort | 複合フォーミュラはソート不可 (例: This.firstName + This.lastName) | |
On Alternative Click | 配列リストボックスのみ | |
On Before Data Entry | ||
On Before Keystroke | ||
On Begin Drag Over | ||
On Clicked | ||
On Column Moved | ||
On Column Resize | ||
On Data Change | ||
On Double Clicked | ||
On Drag Over | ||
On Drop | ||
On Footer Click | 配列、カレントセレクション&命名セレクションリストボックスのみ | |
On Getting Focus | 追加プロパティの取得はセル編集時のみ | |
On Header Click | ||
On Load | ||
On Losing Focus | 追加プロパティの取得はセル編集完了時のみ | |
On Row Moved | 配列リストボックスのみ | |
On Scroll | ||
On Unload |
リストボックスヘッダー
リストボックスのヘッダープロパティにアクセスするためには、リストボックスのプロパティリストで ヘッダーを表示 オプションが選択されていなければなりません。
ヘッダーが表示されていれば、フォームエディターでリストボックスオブジェクトが選択されているときに、リストボックスヘッダーをクリックするとヘッダーを選択できます:
リストボックスの各列ヘッダー毎に標準のテキストプロパティを設定できます。設定すると、リストボックスや列に対する設定よりもこちらが優先されます。
さらに、ヘッダー特有のプロパティを設定することができます。 カスタマイズされた並び替え などの用途に、ヘッダーの列タイトルの隣、あるいはタイトルの代わりにアイコンを表示することができます。
ランタイムにおいてヘッダーで発生したイベントは、その列のオブジェクトメソッド が受け取ります。
ヘッダーに OBJECT SET VISIBLE
コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのヘッダーが対象になります。 たとえば、OBJECT SET VISIBLE(*;"header3";False)
という命令の場合、指定したヘッダーだけではなく、header3 が属するリストボックスの全ヘッダーを非表示にします。
ヘッダー特有のプロパティ
オブジェクト名 - 変数あるいは式 - タイトル - CSSクラス - パス名 - アイコンの場所 - 幅 - 横方向パディング - 縦方向パディング - フォント - 太字 - イタリック - 下線 - フォントカラー - 横揃え - 縦揃え - ヘルプTips
リストボックスフッター
リストボックスのフッタープロパティにアクセスするためには、リストボックスのプロパティリストで フッターを表示 オプションが選択されていなければなりません。
リストボックスは、追加の情報を表示するための入力を受け付けない "フッター" を持つことができます。 表形式で表示されるデータについて、合計や平均などの計算値を表示するためにフッターは 通常使用されます。
フッターが表示されていれば、フォームエディターでリストボックスオブジェクトが選択されているときにフッターをクリックすることで選択できます:
リストボックスの各列フッター毎に標準のテキストプロパティを設定できます。設定すると、リストボックスや列に対する設定よりもこちらが優先されます。 さらに、フッター特有のプロパティを設定することができます。 カスタムまたは自動計算 をフッターに挿入することができます。
ランタイムにおいてフッターで発生したイベントは、その列のオブジェクトメソッド が受け取ります。
フッターに OBJECT SET VISIBLE
コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのフッターが対象になります。 たとえば、OBJECT SET VISIBLE(*;"footer3";False)
という命令の場合、指定したフッターだけではなく、footer3 が属するリストボックスの全フッターを非表示にします。
フッター特有のプロパティ
オブジェクト名 - 変数あるいは式 - 式の型 - 変数の計算 - CSSクラス - 幅 - 横方向パディング - 縦方向パディング - 文字フォーマット - 数値フォーマット - 日付フォーマット - 時間フォーマット - ピクチャーフォーマット - ワードラップ - エリプシスを使用して省略 - 背景色 - フォント - 太字 - イタリック - 下線 - フォントカラー - 横揃え - 縦揃え - ヘルプTips
入力の管理
リストボックスのセルが入力可能であるには、以下の条件を満たす必要があります:
- セルが属する列が 入力可 に設定されている (でなければ、その列のセルには入力できません)。
On Before Data Entry
イベントで $0 が -1 を返さない。 カーソルがセルに入ると、その列のメソッドでOn Before Data Entry
イベントが生成されます。 このイベントのコンテキストにおいて、$0 に -1 を設定すると、そのセルは入力不可として扱われます。 Tab や Shift+Tab が押された後 にイベントが生成された場合には、フォーカスはそれぞれ次あるいは前のセルに移動します。 $0 が -1 でなければ (デフォルトは 0)、列は入力可であり編集モードに移行します。
2つの配列で構築されるリストボックスを考えてみましょう。1つは日付でもう 1つはテキストです。 日付配列は入力不可ですが、テキスト配列は日付が過去でない場合に入力可とします。
arrText 列のメソッドは以下の通りです:
Case of
:(FORM event.code=On Before Data Entry) // セルがフォーカスを得たとき
LISTBOX GET CELL POSITION(*;"lb";$col;$row)
// セルの特定
If(arrDate{$row}<Current date) // 過去の日付なら
$0:=-1 // セルは入力不可
Else
// そうでなければ入力可
End if
End case
On Before Data Entry
イベントは On Getting Focus
より前に生成されます。
データの整合性を保つため、セレクション型とエンティティセレクション型のリストボックスにおいては、レコード/エンティティに対する変更はセル内の編集が確定されたときに自動的に保存されます。確定は、以下のような場合を指します:
- セルがアクティブでなくなったとき (ユーザーによるタブキー押下、クリック操作など)
- リストボックスからフォーカスが外れたとき
- フォームからフォーカスが外れたとき
データ入力・編集操作にともなって発生するイベントのシーケンスは次のようになります:
動作 | リストボックス型 | イベントシーケンス |
---|---|---|
セルが編集モードに切り替わったとき (ユーザー操作または EDIT ITEM コマンド) | すべて | On Before Data Entry |
すべて | On Getting Focus | |
セルの値が編集されたとき | すべて | On Before Keystroke |
すべて | On After Keystroke | |
すべて | On After Edit | |
ユーザーがセルを確定し、セルを移動したとき | セレクションリストボックス | 保存 |
レコードセレクションリストボックス | On saving an existing record トリガ ー (設定されていれば) | |
セレクションリストボックス | On Data Change(*) | |
エンティティセレクションリストボックス | エンティティはオートマージオプション、オプティミスティック・ロックモードで保存されます (entity.save( ) を参照ください)。 正常に保存できた場合には、エンティティは更新され最新の状態が表示されます。 保存処理が失敗した場合、エラーが表示されます。 | |
すべて | On Losing Focus |
(*) エンティティセレクションリストボックスでの On Data Change
イベントの場合:
- カレントの項目 オブジェクトには編集前の値が格納されます。
This
オブジェクトには、編集後の値が格納されます。
コレクション/エンティティセレクション型では、式が null に評価される場合にリストボックスでのデータ入力に制約があります。 この場合、セル内の null 値を編集・削除することはできません。
選択行の管理
選択行の管理は、リストボックスのタイプが配列か、レコードのセレクションか、あるいはコレクション/エンティティセレクションかによって異なります。
-
セレクションリストボックス: 選択行は、デフォルトで
$ListboxSetX
と呼ばれる変更可能なセットにより管理されます (X は 0 から始まり、フォーム内のリストボックスの数に応じて一つずつ増加していきます)。 このセットはリストボックスのプロパティリストで定義します。 このセットは 4D が自動で管理します。ユーザーがリストボックス中で 1つ以上の行を選択すると、セットが即座に更新されます。 他方、リストボックスの選択をプログラムから更新するために、"セット" テーマのコマンドを使用することができます。 -
コレクション/エンティティセレクションリストボックス: 選択項目は、専用のリストボックスプロパティを通して管理されます。
- カレントの項目 は、選択された要素/エンティティを受け取るオブジェクトです。
- 選択された項目 は、選択された項目のコレクションです。
- カレントの項目の位置 は、選択された要素あるいはエンティティの位置を返します。
-
配列リストボックス:
LISTBOX SELECT ROW
コマンドを使用して、プログラムからリストボックスの行を選択できます。 リストボックスオブジェクトにリンクされた変 数 は、行選択の取得、設定、保存に使用します。 この変数はブール配列で、4Dが自動的に作成・管理します。 この配列のサイズは、リストボックスのサイズにより決定されます。つまり、各列に関連付けられた配列のうち、最も小さな配列と同じ数の要素を持ちます。 この配列の各要素には、対応する行が選択された場合にはtrue
が、それ以外の場合はfalse
が設定されます。 4D は、ユーザーの動作に応じてこの配列の内容を更新します。 これとは逆に、この配列要素の値を変更して、リストボックス中の選択行を変更することができます。 他方、この配列への要素の挿入や削除はできず、行のタイプ変更もできません。Count in array
コマンドを使用して、選択された行の数を調べることができます。 たとえば、以下のメソッドは配列タイプのリストボックスで、最初の行の選択を切り替えます:
ARRAY BOOLEAN(tBListBox;10)
// tBListBox はフォーム内にあるリストボックス変数の名前です
If(tBListBox{1}=True)
tBListBox{1}:=False
Else
tBListBox{1}:=True
End if
OBJECT SET SCROLL POSITION
コマンドは、最初に選択された行または指定された行を表示するようにリストボックスをスクロールします。
選択行の見た目のカスタマイズ
リストボックスの セレクションハイライトを非表示 プロパティにチェックを入れている場合には、他のインターフェースオプションを活用してリストボックスの選択行を可視化する必要があります。 ハイライトが非表示になっていても選択行は引き続き 4D によって管理されています。つまり: