セルをマウスクリックした時の値の選択状態制御 - Printable Version +- Curl Global Community (https://communities.curl.com) +-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1) +--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2) +--- Thread: セルをマウスクリックした時の値の選択状態制御 (/showthread.php?tid=1274) |
セルをマウスクリックした時の値の選択状態制御 - kay - 11-09-2015 グリッドのセルをクリックした時に、値が全選択された状態にするにはどのようにしたらよいでしょうか? 現在は、セルをクリックするとクリックした桁にキャレットが表示されるようになっています。 Tabキーでフォーカス移動してきた場合は値が全選択された状態となっており、 こちらの動作に統一するための修正となります。 カスタム セル クラスの create-editor で PointerPress、FocusIn のどちらか、 または両方のイベント ハンドラーを追加してみましたが、 一瞬全選択された後選択が解除されてキャレットが表示される動作となってしまいました。 || フォーカス時常に値を選択する {editor.add-event-handler {on eointerEnvelopeEvent do {type-switch e.contents case ppointerPress do {editor.select-all} {e.consume} } } } {editor.add-event-handler {on e:FocusIn do {editor.select-all} {e.consume} } } 実現方法についてご教示下さい。 RE: セルをマウスクリックした時の値の選択状態制御 - dankom - 11-09-2015 カスタムセルクラス自身にPointerReleaseイベントに対してイベントを 張り付けてはどうでしょうか。 Code: {define-class public open AmountCell {inherits StandardStringCell} RE: セルをマウスクリックした時の値の選択状態制御 - kay - 11-09-2015 ご回答ありがとうございます。 PointerRelease なんですね・・・。 おかげさまで、期待通りの動作を実現できました。 最終的に、少し手を加えて次のようになりました。 Code: || マウスクリック時に全選択状態にする {self.add-event-handler {on e:PointerEnvelopeEvent do {type-switch e.contents case pp:PointerRelease do {if self.current-editor != null then || 選択状態でクリックした時は選択解除する {if self.current-editor.selection.empty? then {after 0s do {self.current-editor.select-all} } } } } } } ありがとうございました! |