GDD Blog: [.NET]MouseWheelイベントのインプリメントでは、イベントのインプリメントの仕方を書きましたが、今回はその引数である、MouseEventArgsについて書きます。
先日実装した機能では、コントロール+ホイールで表示している画面の縮小拡大をし、コントロールを押していない場合は、スクロールさせるという機能を実現する必要がありました。
しかし、コントロール+ホイールで縮小拡大するのですが、同時に画面がスクロールしてしまうのです。
キー押下イベントでは、Handledというプロパティにtrueを設定すると上位コンテナ?にイベントがわたらないのですが、残念ながらMouseEventArgsにはHandledプロパティはありません。
で、MouseWheelの引数の型をよく見ると、HandledMouseEventArgsというクラスでした。プロパティには、Handledがありました。
キャストしてHandledにtrueを設定するとキーイベント同様に上位コンテナ?にイベントは通知されませんでした。めでたくコントロール押下+ホイールで拡大のみを実現できました。
わかってみると1行のコードなんですが、ここにたどり着くまでに3日費やしました。重たい1行でした。
0 件のコメント:
コメントを投稿