2016-05-30 31 views
0

我正在使用語音識別項目來使用語音識別,我說的一個數字會將軌跡條移動到所述值,當軌跡條移動時,它將控制伺服。顯然,當我試圖用言語來移動它時,它什麼都不做。下面的代碼:如何使用語音識別在c#中滾動軌跡條#

case "move right fifty": 
niya.Speak("moving right 50 degree"); 
Val_trackBar.Focus(); 
Val_trackBar.Value.ToString("50"); 
break; 

private void trackBar1_Scroll(object sender, EventArgs e) 
    { 
     if (port.IsOpen) 
     { 
      port.WriteLine(Val_trackBar.Value.ToString()); 
      //lblDegree.Text = "Degree: " + Val_trackBar.Value.ToString(); 
     } 
    } 

回答

0

你不會真的將數據設置爲50。你得到的價值 - 爲Int32的引用,調用的ToString(「50」)method on the int(這將嘗試根據值轉換到你的參數)。

相反,設置使用此值:

Val_trackBar.Value = 50; 

而且您的滾動事件將不火,因爲根據MSDN滾動「時,無論是鼠標或鍵盤操作移動滾動框時發生。」。

相反,使用ValueChanged-event.

所以,你可能有這樣一行:

Val_trackBar.Scroll += trackBar1_Scroll; 

修改成:

Val_trackBar.ValueChanged += trackBar1_Scroll;