C# 如何在NotifyIcon中使用鼠标滚轮

C# 如何在NotifyIcon中使用鼠标滚轮,c#,mousewheel,notifyicon,C#,Mousewheel,Notifyicon,我正在构建一个控制主音量的小程序,并满足以下要求 位于任务栏中(时钟旁边) 单击此按钮将使主卷静音/取消静音 当鼠标悬停在图标上时,鼠标滚轮控制音量的增大/减小/减小 到目前为止,我已经通过结合这两个项目使前两个工作起来了 我遇到的麻烦是3号,我猜这是我小程序中最复杂的部分 错误:“System.Windows.Forms.NotifyIcon”不包含“鼠标滚轮”的定义 我正在运行Windows 8.1 x64.NET 4.5/Visual Studio Express 2013 个人背景 我

我正在构建一个控制主音量的小程序,并满足以下要求

  • 位于任务栏中(时钟旁边)

  • 单击此按钮将使主卷静音/取消静音

  • 当鼠标悬停在图标上时,鼠标滚轮控制音量的增大/减小/减小

  • 到目前为止,我已经通过结合这两个项目使前两个工作起来了

    我遇到的麻烦是3号,我猜这是我小程序中最复杂的部分

    错误:“System.Windows.Forms.NotifyIcon”不包含“鼠标滚轮”的定义

    我正在运行Windows 8.1 x64.NET 4.5/Visual Studio Express 2013

    个人背景

  • 我不是程序员

  • 十多年前,我在一门计算机课程中学习过基本java

  • 我在microsoftvirtualacademy.com上自学C#


  • 这是因为NotifyIcon不是控件,而是组件(它派生自组件类)。MouseWheel事件是控件类的成员,而不是组件。 因此,NotifyIcon没有鼠标滚轮事件

    恐怕这个问题没有正式的解决方案,因为公共API(Shell_NotifyIcon)不公开控制盘信息

    UPD:随着需求的变化,这里有我的分步指南

    首先,需要为NotifyIcon添加鼠标单击处理程序

    notifyIcon.MouseClick += new MouseEventHandler(notifyIcon_MouseDown);
    
    然后,将此事件处理程序添加到代码隐藏中

    void notifyIcon_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            // Increase volume here
        }
        else if (e.Button == MouseButtons.Right)
        {
            // Decrease volume here
        }
        else if (e.Button == MouseButtons.Middle)
        {
            // Mute here
        }
    }
    

    如果是这样的话,我想我必须改变我的要求,比如;按左键时音量会增大,按右键时音量会减小,按中间键时音量会静音。谢谢,现在就开始执行。如果没有其他合适的回答,我的问题将被接受。