マウスホイールのイベントが2回呼び出されてしまう
C#でビデオ再生をするプログラムを作っています。
マウスホイールによるコマ送り再生を実装したいのですが表題の事例が発生してしまいます。
起動直後はちゃんと1回だけ呼び出されるのですが、フォーム内をクリックする等をしてアクティブなコントロールがある状態になると2回呼び出されてしまいます。
イベントはメインフォームにのみ
this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.frmMainForm_MouseWheel)
の形で登録しています。
今は
if (this.ActiveControl != null)
{
frameSec = frameMSec / 2;
}
というようにアクティブなコントロールがあれば、1コマの半分の時間だけ動画を進めるという形をとっているのですが、このような対症療法的なものではなく根本的な解決法が知りたいです。
どうすれば2回目の呼び出しを回避できるのでしょうか?
そもそも、何故2回呼び出されてしまうのでしょうか?