"長押"は "なげし" であって "ながおし" では無いですが、そんな事言っていたら煙たがられます。言葉は生き物なので"ながおし"が一般化するのかな?
最近の携帯やリモコンは物理的なボタンが少ないので、UIとしてボタンの長押で違う処理を実行するようになってます。
家電のリモコンは巨大化してワケワカ_ボタンが一杯あるので不要と思うのだか...もっとUIを考えて欲しいな!
この長押機能をWindowsFormアプリのボタンに実装して欲しいというリクエストがありました。標準機能ではないし、使い勝手も混乱を招きそうなので断りました。要求理由は「機能としては必要だが、ボタンを配置すると、不必要に押されてしまう。長押で機能を付加すれば表面上は隠せる」。
実装するとしたらどうするか?
ボタンClickイベントは button.down => button.click => button.up の順に発生します。button.Downの状態でマウスがボタンから外れてマウスアップしたら、Button.Clickは発生せずにButton.Upが発生します。
このシーケンスで時計を計測、Downの時刻、Clickの時刻測定し長押間隔たっていれば......ではだめだ。長押中はClickされないんだ。
Timerを使い、Downで起動 UPで停止 Timer_Tick でButtonの状態を見て長押の判定。とするのが正常系のようだが、異常系がありそうな気がする。
WebApliだったら Javascriptで処理する? 止めとくでしょうね。