如何在c#中使用语音识别滚动轨迹栏

时间:2016-05-30 15:38:33

标签: 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();
        }
    }

1 个答案:

答案 0 :(得分: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;