【发布时间】:2010-10-03 12:25:56
【问题描述】:
我无法在主窗体中获取鼠标滚轮事件。
作为演示,我想出了一个简单的例子:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.panel1.MouseWheel += new MouseEventHandler(panel1_MouseWheel);
this.panel1.MouseMove += new MouseEventHandler(panel1_MouseWheel);
Form2 f2 = new Form2();
f2.Show(this);
}
private void panel1_MouseWheel(object sender, MouseEventArgs e)
{
if(e.Delta != 0)
Console.Out.WriteLine(e.Delta);
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
this.MouseMove += new MouseEventHandler(Form2_MouseMove);
this.MouseWheel += new MouseEventHandler(Form2_MouseMove);
}
private void Form2_MouseMove(object sender, MouseEventArgs e)
{
if(e.Delta != 0)
Console.Out.WriteLine(e.Delta);
}
}
我在 Form2 中获得了鼠标滚轮事件,但没有在 Form1 中获得任何想法?
干杯,
詹姆斯
【问题讨论】:
-
鼠标滚轮永恒的挫败感是微软决定将其视为键盘事件而不是鼠标事件,因此鼠标滚轮消息以键盘焦点传递到控件,迫使几乎每个应用程序使用鼠标滚轮做某种变通方法。
标签: c# winforms mousewheel