无法在C#Windows窗体中触发MouseWheel事件

cks*_*ubs 6 c# mousewheel visual-studio-2008 winforms

首先,鼠标滚轮事件未在Visual Studio 2008的事件窗格中列出,这非常烦人.

我在网上找到了正确的格式,并将其写入我的代码中:

    private void Form1_MouseWheel(object sender, MouseEventArgs e)
    {
        Debug.WriteLine("Foo");
    }
Run Code Online (Sandbox Code Playgroud)

...当鼠标滚轮旋转时,我从中得不到任何响应.

我在我的代码的主类区域中执行此操作,并且设计器仅包含一个窗体/窗口/任何内容,因此鼠标不会失去焦点.

namespace BlahBlah
{
    public partial class Form1 : Form
    {
Run Code Online (Sandbox Code Playgroud)

相比之下,我在鼠标滚轮正上方有这种方法,它工作正常:

    private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
        Debug.WriteLine("Foo");
    }
Run Code Online (Sandbox Code Playgroud)

如果我不得不猜测,我认为我没有正确地将代码链接到表单(例如:如果我通过设计器的事件面板添加此事件,Visual Studio将为我做的所有事情).但我可能是错的,或者只是犯了一些愚蠢的错误.

当鼠标滚轮旋转时,你能帮助我做出任何反应吗?谢谢!

Kur*_*isu 12

需要设置鼠标滚轮事件.

将其添加到Form1的构造函数(After InitalizeComponents();)

this.MouseWheel+= new MouseEventHandler(Form1_MouseWheel);
Run Code Online (Sandbox Code Playgroud)


mar*_*009 6

我没有足够的声誉回复评论,但是你的问题的答案是代表确实需要设置.但是,当您通过在属性窗格中双击它来创建一个代码时,代码将自动生成并放在InitializeComponent方法的*.designer.cs文件中.