19

まったく同じ問題についてこのスレッドを見てきましたが、その解決策はうまくいきませんでした。
基本的に私が達成しようとしているのは、ユーザーが 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");
}

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

4

1 に答える 1

28

マウスホイール イベントが発生するように、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();
}
于 2012-12-08T23:08:40.443 に答える