2011-09-29 138 views
0

我对C#非常陌生,并且跟踪栏有一些问题。 我正在尝试通过上下调整音轨来增加/减少音量。 我确实有两个命令,我可以通过串行电缆通过协议发送,让它为“UP”增加,“DOWN”为减小音量。在写完“UP”之后,你还要写出你想增加音量的次数(nn 0-254)。例如“UP10”将音量增加10.c#Trackbar增加/减少

如果您有两个按钮,这很容易。

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

但是,我将如何实现跟踪栏相同的结果? 我试图玩trackbar.Value,但没有结果。

+0

你的平台是什么? asp.net? Silverlight的? WPF?的WinForms? (etc.) –

+0

我使用.Net作为我的开发 – user971266

+1

@ Muad'Dib - 这与他使用的平台有什么关系。他的问题是一个强调C#的问题。基于他使用串行连接的事实,它不能成为ASP.net,并且基于他的技能水平,它不可能成为独立的Silverlight应用程序。 –

回答

0

作为一个快速猜测,但没有平台信息 如果你可以得到设备当前的音量信息,那么这将是有用的,然后嫁接在轨道栏中的值和实际音量,并将其存储在本地值(lastvolume或许)

在valueChanged事件中,检索新值。然后将它与最后一卷进行比较,如果其>则发送一个UP(currentvalue-lastvalue)否则如果它的DOWN较小(lastvalue-currentvalue)并将新值存储在上一个值中。

你应该结束一个工作音量控制。

0

假设您将旧卷存储在名为oldVolume的变量中。您可以使用跟踪栏的ValueChanged事件来确定newVolume并计算difference。然后您可以简单地将它写入您的串行端口。

0

使用变量来跟踪当前值是什么。这将用于增加或减少音量。

所有你必须确定增加或减少的值,你可以通过检查以前的值是什么来做到这一点,然后根据该结果发送UPValue或DOWNValue。

+0

那我该如何储存呢?如果我做int x = trackbar.value; x不会随时使用新值获取更新? – user971266