2011-09-29 269 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