我正在研究一个使用语音识别的项目,我说的是一个数字,将轨迹栏移动到所述值,当轨迹栏移动时,它将控制伺服。显然,当我试图使用语音来移动它时,它什么都不做。这是代码:
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 :(得分: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;