увеличение / уменьшение панели треков c #

#c# #trackbar

#c# #панель треков

Вопрос:

Я действительно новичок в C #, и у меня есть несколько проблем с трековой панелью. Я пытаюсь увеличить / уменьшить громкость, регулируя трековую панель вверх и вниз. У меня есть две команды, которые я могу отправить с протоколом по последовательному кабелю, позволяя, чтобы он был «ВВЕРХ» для увеличения и «ВНИЗ» для уменьшения громкости. после ввода «UP» вы также указываете, сколько раз (nn 0-254) вы хотите увеличить громкость. например, «UP10» увеличит громкость на 10.

Это действительно просто, если у вас есть две кнопки.

 void VolumeDownClick(object sender, EventArgs e)
    {
        try
        {        //writing to serial port
            serialPort.WriteLine("UP10");
        }
        catch
        { 
        }
    }
  

Но как мне добиться того же результата с помощью трековой панели?
Я попытался поиграть с trackbar.Value, но безрезультатно.

Комментарии:

1. какова ваша платформа? asp.net ? silverlight? wpf? winforms? (и т.д.)

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

3. @Muad’Dib — Какая разница, какую платформу он использует. Его вопрос — это подчеркнутый вопрос C #. Основываясь на том факте, что он использует последовательное соединение, это не может быть ASP.net и вряд ли это будет отдельное приложение Silverlight, основанное на его уровне квалификации.

4. @user971266 — .NET не является платформой. Вы не можете кодировать «.NET», вы либо имеете дело с Win32 Forms, WPF, Silverlight, либо ASP.NET

5. поскольку ответ может отличаться в silverlight или wpf или asp.net или winforms или … что означает, что вы получите лучший ответ

Ответ №1:

Как быстрое предположение, но без информации о платформе, если вы можете получить информацию о текущем томе устройства, тогда было бы полезно затем сопоставить значение в строке дорожки и фактический объем., и сохранить его в локальном значении (возможно, в последнем объеме)

В событии valueChanged извлеките новое значение. Затем сравните его с последним томом, если его> затем отправьте значение UP(currentvalue-lastvalue), если оно меньше DOWN(lastvalue-currentvalue) и сохраните новое значение в last value.

В итоге у вас должен быть рабочий регулятор громкости.

Ответ №2:

Предполагая, что у вас есть старый том, сохраненный в переменной с именем oldVolume . Вы можете использовать ValueChanged событие трековой панели для определения newVolume и вычисления difference . Затем вы можете просто записать это на свой последовательный порт.

Ответ №3:

Используйте переменную, чтобы отслеживать текущее значение. Это будет использоваться для увеличения или уменьшения громкости.

Все, что вам нужно, чтобы определить увеличенное или уменьшенное значение, вы можете сделать это, проверив, каким было предыдущее значение, а затем отправив свое значение вверх или вниз на основе этого результата.

Комментарии:

1. Как бы я тогда это сохранил? Если я делаю int x = trackbar.value; разве x не получает обновления с новым значением все время?