リストボックスのセルの入力属性をコントロール(v12以前)
| 日付 | 2013/08/30 |
|---|---|
| ID | 13-008 |
| バージョン | 12 |
| プラットフォーム | Windows, Mac |
この記事は、最新ではないバージョンに関連した方法について解説しています。
最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。
リストボックスの特定のセルを入力不可にするような処理を行うためには、OBJECT SET ENTERABLEを使います。
次の例題では、リストボックスのオブジェクトメソッドによって、1行目の値を使い2行目のセルの入力属性をコントロールしています。
上記のフォームを表示して動作させたところが、下記のスクリーンショットです。必要なフォームイベントが発生するように、リストボックスのフォームイベントプロパティを有効にしておくことを忘れないでください。
上記のテストでは、オブジェクトメソッドによって2行目の2列目のセルがロックされて書き換えができなくなっています。他のセルは書き換え可能です。上記でOFFとなっているセルの値を別の値に書き換えることで、セルのロックを解除することもできます。
実際のコードは次のとおりです。
Case of
: (Form event=On Selection Change)
OBJECT SET ENTERABLE(*;"Column2";True)
: (Form event=On Getting Focus)
C_LONGINT($column;$row)
LISTBOX GET CELL POSITION(*;"List_Box";$column;$row)
If ($column=2)
If (Column1{$row}="OFF")
OBJECT SET ENTERABLE(*;"Column2";False)
End if
End if
End case