【问题标题】:Can't fire MouseWheel event in C# Windows Forms无法在 C# Windows 窗体中触发 MouseWheel 事件
【发布时间】:2009-07-27 19:32:04
【问题描述】:

首先,鼠标滚轮事件没有列在 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");
    }

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

当鼠标滚轮旋转时,你能帮我得到任何响应吗?谢谢!

【问题讨论】:

    标签: c# winforms visual-studio-2008 mousewheel


    【解决方案1】:

    需要设置鼠标滚轮事件。

    将此添加到 Form1 的构造函数中(在 InitalizeComponents(); 之后)

    this.MouseWheel+= new MouseEventHandler(Form1_MouseWheel);
    

    【讨论】:

    • 就是这样,非常感谢!附带问题:我的 MouseMove 方法也有一个(this.MouseMove += Form1_MouseMove;),但不是用于 MouseClick。为什么不需要一个?
    • 嗯...它会响应鼠标点击吗?如果它不需要对鼠标点击做出反应,它就不需要一个。一些控件自动链接了鼠标单击事件(用于滚动等)。这取决于您要完成的操作。
    • 我的意思是我的 MouseClick 方法可以工作(在鼠标单击时触发),而不需要构造函数中的“.... += ....”内容。这就是为什么我忘了为 MouseWheel 添加类似的东西,MouseClick 工作得很好。
    • 可能是设计师为你添加的。您可以做的是展开您的表单并查看 Form1.Designer.cs 文件的代码。在那里你可能会在某个地方找到它。
    【解决方案2】:

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

    【讨论】:

    • 是的,看看 Designer.cs 文件并查看区域,您会看到代码生成器如何为您连接这些事件。
    【解决方案3】:

    我不知道如何订阅该特定事件,但您可以覆盖表单上的相应方法。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多