DropdownList を「編集できない」状態にした際に、
文字色が薄くならず、かつ、文字が選択できるようにしたいです。
そもそも DropdownList では文字を選択できないよう(?)なので、
ComboBox を editable?=false に設定してみると、文字は選択できますが、
右の下三角ボタンがクリックでき、リストが表示されてしまいます。
disabled-text-sunken?=false, disabled-color="black" に指定することで、
文字が薄くなってしまう問題には対応できますが、
enabled?=false にしてしまうと、
やはり文字が選択できなくなってしまいます。
よい方法はありますでしょうか。
DropdownList でラベルが選択できない
ボタンを押せてしまうのであればボタンだけを押せなくさせればよいかと思います。
こんな感じでどうでしょうか? 上下キーでアイテムを選択させたければKeyPressイベントを外せばよいです。
こんな感じでどうでしょうか? 上下キーでアイテムを選択させたければKeyPressイベントを外せばよいです。
Code:
{curl 8.0 applet}
{def cbo = {ComboBox
enabled? = true,
editable? = false,
disabled-text-sunken?=false,
disabled-color="black",
value = "aaa",
"bbb",
"ccc",
{on e:KeyPress do
{if e.value == KeyPressValue.up or e.value == KeyPressValue.down then
{e.consume}
}
}
}
}
{value
def df-ui = cbo.ui-object asa SkinnableComboBoxUI
def frame = df-ui.child.graphic asa Frame
def grid = frame.child.graphic asa Grid
def txt = grid.child-array[0].graphic asa TextField
def btn = grid.child-array[1].graphic
set txt.enabled? = true
set btn.enabled? = false
cbo
}