Tips

リストボックスのセルの入力属性をコントロール(v12以前)

日付2013/08/30
ID13-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