web-dev-qa-db-ja.com

マウスホイールイベントが発生しない

私はまったく同じ問題について このスレッド を見てきましたが、その解決策は私にはうまくいきませんでした。
基本的に、私が達成しようとしているのは、ユーザーがWindowsフォームのグラフコントロールを操作しているときのマウスホイールイベントです。
今、私はいくつかの異なることを試みました。

 public mainForm()
 {
     InitializeComponent();
     this.chData.MouseWheel +=new MouseEventHandler(chData_MouseWheel);
 }

また、これをmainForm.Designer.csに追加してみました。

this.chData.TabIndex = 2;
this.chData.Text = "chart2";

this.chData.MouseWheel += 
   new System.Windows.Forms.MouseEventHandler(this.chData_MouseWheel);

this.chData.MouseClick += 
   new System.Windows.Forms.MouseEventHandler(this.chData_MouseClick);

this.chData.MouseDoubleClick += 
   new System.Windows.Forms.MouseEventHandler(this.chData_MouseDoubleClick);

this.chData.MouseMove += 
   new System.Windows.Forms.MouseEventHandler(this.chData_MouseMove);

(ここでは、デモ用にブロック全体を含めました)。私はまた、以下のように定義された関数を持っています:

private void chData_MouseWheel(object sender, MouseEventArgs e)
{
   MessageBox.Show("FJDKS");
}

残念ながら、私はくそったれを発射させることができませんか?誰かが私がどこで間違っているのか教えてもらえますか?前もって感謝します!

19
tmwoods

マウスホイールイベントが発生するように、chartcontrolに焦点を合わせる必要があります。マウスがコントロールに入るときにフォーカスを設定し、マウスがコントロールから離れるときに親にフォーカスを戻すことができます。

void friendChart_MouseLeave(object sender, EventArgs e)
{
    if (friendChart.Focused)
        friendChart.Parent.Focus();
}

void friendChart_MouseEnter(object sender, EventArgs e)
{
    if (!friendChart.Focused)
        friendChart.Focus();
}
24
Larry