2008年8月9日土曜日

[.NET]MouseWheelイベントのインプリメント(つづき)

GDD Blog: [.NET]MouseWheelイベントのインプリメントでは、イベントのインプリメントの仕方を書きましたが、今回はその引数である、MouseEventArgsについて書きます。

先日実装した機能では、コントロール+ホイールで表示している画面の縮小拡大をし、コントロールを押していない場合は、スクロールさせるという機能を実現する必要がありました。
しかし、コントロール+ホイールで縮小拡大するのですが、同時に画面がスクロールしてしまうのです。

キー押下イベントでは、Handledというプロパティにtrueを設定すると上位コンテナ?にイベントがわたらないのですが、残念ながらMouseEventArgsにはHandledプロパティはありません。
で、MouseWheelの引数の型をよく見ると、HandledMouseEventArgsというクラスでした。プロパティには、Handledがありました。

キャストしてHandledにtrueを設定するとキーイベント同様に上位コンテナ?にイベントは通知されませんでした。めでたくコントロール押下+ホイールで拡大のみを実現できました。

わかってみると1行のコードなんですが、ここにたどり着くまでに3日費やしました。重たい1行でした。

0 件のコメント: