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

需要关注图表控件,以便触发鼠标滚轮事件。您可以在鼠标进入控件时设置焦点,并在鼠标离开时将焦点返回给其父级。

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 回答