2014-08-31 50 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