FlexView - GUI操作

Q1
クリックしたセルの列番号を取得したい
A1
セルを表現するFlexTextBoxクラスやFlexLabelクラス等では、onClickedイベントハンドラの引数として渡されるEventオブジェクトに列番号が含まれません。

Clickedイベントを利用して列番号を取得したい場合は、予め各FlexTextBoxやFlexLabelオブジェクトに列情報を持たせ、それを参照する方法があります。

セルを表現するオブジェクトには、任意のデータが格納できるdataプロパティが用意されています。このプロパティに列番号を持たせておき、イベント発生時にdataプロパティの値を取得することで、イベント発生元の列番号を判断するといった実装が可能です。この手法は、Clickedイベント以外のイベント処理にも活用できます。

下記のサンプルでは、セルをクリックした場合、またはセルの値を変更した場合にdataプロパティを取得してラベルに結果(列番号)を表示します。



※FlexViewクラスに現在の選択位置を示すcolumnPositionプロパティは存在しますが、
  FlexViewオブジェクトの子オブジェクト(FlexTextBoxやFlexLabelオブジェクト等)で発生した
  イベントのイベントハンドラ内で参照した際、値の更新タイミングに時間差が生じ、想定通りに
  列番号が取得されない場合があるため本件のようなパターンでは利用できません。

 
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser DT・Biz/Designer DT TIPS集 トップへ