鼠标滚轮事件未触发

tmw*_*ods 18 c# events charts mousewheel winforms

我已经看过这个关于完全相同问题的线程,但该解决方案对我不起作用.
基本上我想要完成的是当用户与Windows窗体上的图表控件交互时的鼠标滚轮事件.
现在我尝试了一些不同的东西.

 public mainForm()
 {
     InitializeComponent();
     this.chData.MouseWheel +=new MouseEventHandler(chData_MouseWheel);
 }
Run Code Online (Sandbox Code Playgroud)

我也尝试将其添加到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);
Run Code Online (Sandbox Code Playgroud)

(我在这里包括整个块用于演示).我也有如下定义的功能:

private void chData_MouseWheel(object sender, MouseEventArgs e)
{
   MessageBox.Show("FJDKS");
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法解决这个问题?谁能告诉我哪里出错了?提前致谢!

Lar*_*rry 24

需要关注图表控件,以便鼠标轮事件可以触发.您可以在鼠标进入控件时设置焦点,并在离开时将焦点指向其父对象.

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();
}
Run Code Online (Sandbox Code Playgroud)