2014-08-31 3 views
2

Я строю маленькую программу для управления мастер-громкости со следующими требованиямиКак использовать MouseWheel в 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' не содержит определения для 'MouseWheel'

Я под управлением Windows 8.1 x64 .NET 4.5/Visual Studio Express 2013

Персональный фон

  1. Я не программист.

  2. Я делал базовую java в компьютерном курсе более десяти лет назад.

  3. Я преподаю себя C# из microsoftvirtualacademy.com

ответ

1

Это происходит, потому что NotifyIcon не контроль, а компонент (это происходит от класса Component). Событие MouseWheel является членом класса Control, а не Component. Итак, NotifyIcon не имеет события MouseWheel.

Боюсь, официального решения этой проблемы нет, так как открытый API (Shell_NotifyIcon) не предоставляет информацию о колесе.

UPD: Как изменились требования, есть мой шаг за шагом руководство

Во-первых, вам нужно добавить обработчик MouseClick для 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

Если это так, я полагаю, что мне придется изменить свои требования, что-то типа; увеличение громкости при нажатии левого клика, уменьшение вправо и отключение звука в середине. –

+0

@ IsaacChristie Я обновляю свой ответ, надеюсь, что это поможет –

+0

спасибо, внедряя его сейчас. будет по-прежнему оставлять мой вопрос открытым еще дольше, если нет других подходящих ответов, которые будут приняты вами. –