能不火的C#Windows窗体鼠标滚轮事件(Can't fire MouseWheel ev

2019-09-21 03:11发布

首先,在Visual Studio 2008的活动面板中这是非常恼人的未列出鼠标滚轮事件。

我找到了正确的格式在网上虽然,写进我的代码如下:

    private void Form1_MouseWheel(object sender, MouseEventArgs e)
    {
        Debug.WriteLine("Foo");
    }

......我从中没有得到响应时,鼠标滚轮旋转。

我在我的代码的主类地区这样做,和设计师只包含一个表格/窗/不管这样的鼠标不失去焦点。

namespace BlahBlah
{
    public partial class Form1 : Form
    {

而相比之下,我有一个鼠标滚轮上面这个方法正确和正常工作:

    private void Form1_MouseClick(object sender, MouseEventArgs e)
    {
        Debug.WriteLine("Foo");
    }

如果我猜的话,我想我不是正确的代码链接到形式(又名:所有的东西,视觉工作室会为我做,如果我加入经过设计师的事件面板此事件)。 但我可能是错的,或只是进行一些愚蠢的错误。

你能帮我得到任何一种反应,当鼠标滚轮旋转? 谢谢!

Answer 1:

鼠标滚轮事件需要进行设置。

这种添加到Form1的构造函数(后InitalizeComponents();)

this.MouseWheel+= new MouseEventHandler(Form1_MouseWheel);


Answer 2:

我没有足够的声誉与评论作出回应,但答案你身边的问题是,代表们确实需要设置。 然而,当你双击创建一个单击它在属性窗格中的代码自动生成并放置在InitializeComponent方法的*了.Designer.cs文件。



Answer 3:

我不知道如何订阅特定的事件,但是你可以重写窗体上的适当的方法,来代替。



Answer 4:

这是最好在这种情况下,以覆盖OnMouseWheel成员函数,而不是注册到事件。 例如:

public class MyFrm : Form
{
    protected override void OnMouseWheel(MouseEventArgs e)
    {
        /*Handle the mouse wheel here*/
        base.OnMouseWheel(e);
    }
}


文章来源: Can't fire MouseWheel event in C# Windows Forms