リストボックスのプロパティで「セレクションハイライトを非表示」4D v17
行背景色配列(バックグラウンドカラー)、行フォントカラー配列(フォントカラー)を与えると、セレクションハイライト中のフォントカラーを制御できない、という問題が、v17で回避できるようになった。
v16以前は、次の図のように、選択行はOSで指定された色になり、文字色は黒、または指定した色になっていた。
文字色が反転しないため、これではハイライト色と文字色が近くなってしまって読みにくい。v17のプロパティで次の設定項目「セレクションハイライトを非表示」が追加された。これをチェックしてハイライトを自力で処理できる。自力ハイライトと呼ぶ。
図のようにリストボックスのプロパティで、次の3ヶ所に注目。
1)「セレクションハイライトを非表示」にチェック
2)「行背景色配列」に「vA01TB_lstBR_BakColor」を指定
3)「行フォントカラー配列」に「vA01TB_lstBR_FontColor」を指定
4)リストボックスのOn Loadで配列に色を代入
5)リストボックスのOn Selection changeで選択された行の背景色とフォントカラーを代入
すると次のようになる。
・色つきの行:文字が緑で背景が黄色 → 自力ハイライト:文字が黄色で背景が緑
・色無しの行:文字が黒で背景が白 → 自力ハイライト:文字が白で、背景が緑
勝手にハイライトしてくれないので、色を付けていない行も含めて、選択行が変化したときに常に配列に色を代入する必要がある。色は、配列に代入したときに適用されてリストボックスに表示される。