我已经研究过关于完全相同的问题的this thread,但那个解决方案对我不起作用。
基本上,我试图完成的是当用户与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");
}
不幸的是,我不能让那该死的东西着火?有没有人能告诉我我哪里错了?提前感谢!
发布于 2012-12-09 07:08:40
需要将焦点放在图表控件上,以便触发鼠标滚轮事件。您可以在鼠标进入控件时设置焦点,并在鼠标离开控件时将焦点返回到其父控件。
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();
}
https://stackoverflow.com/questions/13782763
复制相似问题