2016-05-30 79 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;