2013-03-23 58 views
0

我正在构建一个语音控制应用程序,并且我想在用户说出他的用户名和密码时设置文本框的文本,但是这不会发生,但是如果我显示使用消息我的文本框的文本没有改变(信息里面)

public Form1() 
    { 
     InitializeComponent(); 

     GrammarBuilder g = new Choices("wissam.h44", "jordan_6"); 
     Grammar g1 = new Grammar(g); 
     Grammar g2 = new Grammar(g); 
     InitializeComponent(); 
     this.Shown += new System.EventHandler(this.Form1_Shown); 
     Recognizer1.LoadGrammar(g1); 
     Recognizer2.LoadGrammar(g2); 

    } 
    private void Form1_Shown(Object sender, EventArgs e) 
    { 
     Synthesizer1.Speak("Application is loaded."); 
     Synthesizer1.Speak("Please Enter Your Email: "); 
     Recognizer1.SpeechRecognized += 
     new EventHandler<SpeechRecognizedEventArgs>(recognizer1_SpeechRecognized); 
     Recognizer1.SetInputToDefaultAudioDevice(); 
     Recognizer1.Recognize(); 
     Synthesizer1.Speak("Please Enter Your Password: "); 
     Recognizer2.SpeechRecognized += 
     new EventHandler<SpeechRecognizedEventArgs>(recognizer2_SpeechRecognized); 
     Recognizer2.SetInputToDefaultAudioDevice(); 
     Recognizer2.Recognize(); 

    } 
    void recognizer1_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
    { 
     string eml = e.Result.Text; 
     txtemail.Text = eml; 
    } 
    void recognizer2_SpeechRecognized(object sender, SpeechRecognizedEventArgs r) 
    { 
     txtpwd.Text = r.Result.Text; 
    } 

所以在讲话中确认的事件识别的字符串,如果我把MessageBox.Show(EML)正确显示的电子邮件,但文本框的文本没有改变

回答

0

最有可能识别的文本包含新的行字符,或类似的东西。

若要找出这个问题,尝试在* SpeechRecognized事件明确了具体的字符串,如

txtemail.Text = "recognized text"; 

将它的工作?如果是,则检查调试器中的字符串是否存在特定字符。

+0

它没有工作,问题是在文本框中,是否有任何属性,我可能已经改变了错误,所以现在我不能以编程方式设置文本? – 2013-03-23 21:11:23

+0

你在更改正确的文本框吗?你能改变设计师的文本框文字吗?你可以尝试在设计器中删除和和表单上的文本框 - 它会有帮助吗? – Lanorkin 2013-03-23 22:22:11

相关问题