2014-08-31 52 views
2

我建立一个小程序来控制主音量下列要求如何使用鼠标滚轮在NotifyIcon的

  1. 坐落在任务栏(时钟旁边)

  2. 在单一的点击它将使主音量静音/取消静音

  3. 当鼠标悬停在图标上方时,鼠标滚轮控制音量上/下降/下降。

我已经拿到了前两个由这两个项目合并http://www.codeproject.com/Articles/290013/Formless-System-Tray-Application http://www.codeproject.com/Articles/18520/Vista-Core-Audio-API-Master-Volume-Control

我有麻烦的工作,到目前为止是3号,我猜是最复杂的部分我的小程序。

错误: 'System.Windows.Forms.NotifyIcon' 不包含 '鼠标滚轮'

我运行Windows 8.1 x64的.NET 4.5/Visual Studio速成2013

个人背景的定义

  1. 我不是程序员。

  2. 十多年前,我在计算机课程中做过基本的java课程。

  3. 我自学C#从microsoftvirtualacademy.com

回答

1

出现这种情况,是因为NotifyIcon的不是控制,而是一个组件(它是从组件类派生)。 MouseWheel事件是Control类的成员,而不是Component。 因此,NotifyIcon没有MouseWheel事件。

恐怕没有这个问题的官方解决方案,因为公共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 
    } 
} 
+0

如果是这样的话,我想我必须改变我的要求,像是;按左键单击音量增加,右键减少音量,中键静音。 – 2014-08-31 19:35:03

+0

@IsaacChristie我已经更新了我的答案,我希望它会帮助 – 2014-08-31 20:08:41

+0

谢谢,现在就实施它。如果没有其他合适的答案,你的答案将会被接受,我的问题仍然会持续一段时间。 – 2014-08-31 20:45:41