Post Reply 
 
Thread Rating:
  • 100 Votes - 2.88 Average
  • 1
  • 2
  • 3
  • 4
  • 5
セルをマウスクリックした時の値の選択状態制御
11-09-2015, 01:01 PM
Post: #1
セルをマウスクリックした時の値の選択状態制御
グリッドのセルをクリックした時に、値が全選択された状態にするにはどのようにしたらよいでしょうか?

現在は、セルをクリックするとクリックした桁にキャレットが表示されるようになっています。
Tabキーでフォーカス移動してきた場合は値が全選択された状態となっており、
こちらの動作に統一するための修正となります。

カスタム セル クラスの create-editor で PointerPress、FocusIn のどちらか、
または両方のイベント ハンドラーを追加してみましたが、
一瞬全選択された後選択が解除されてキャレットが表示される動作となってしまいました。

|| フォーカス時常に値を選択する
{editor.add-event-handler
{on e:PointerEnvelopeEvent do
{type-switch e.contents
case pp:PointerPress do
{editor.select-all}
{e.consume}
}
}
}

{editor.add-event-handler
{on e:FocusIn do
{editor.select-all}
{e.consume}
}
}

実現方法についてご教示下さい。
Find all posts by this user
Quote this message in a reply
11-09-2015, 05:02 PM
Post: #2
RE: セルをマウスクリックした時の値の選択状態制御
カスタムセルクラス自身にPointerReleaseイベントに対してイベントを
張り付けてはどうでしょうか。

Code:
{define-class public open AmountCell {inherits StandardStringCell}
  
  {constructor public {default}
    {construct-super}
    
    {self.add-event-handler
        {on e:PointerEnvelopeEvent do
            {type-switch e.contents
             case pp:PointerRelease do
                {if self.current-editor != null then
                    {self.current-editor.select-all}
                    {e.consume}
                }
            }
        }
    }
  }
}
Find all posts by this user
Quote this message in a reply
11-09-2015, 05:28 PM
Post: #3
RE: セルをマウスクリックした時の値の選択状態制御
ご回答ありがとうございます。
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}                        }                    }                }            }        }    }


ありがとうございました!
Find all posts by this user
Quote this message in a reply
Post Reply 

Forum Jump:


User(s) browsing this thread:
1 Guest(s)