C# “我的文本框”的文本未更改(内部信息)

C# “我的文本框”的文本未更改(内部信息),c#,C#,我正在构建一个语音控制应用程序,我想在用户说出用户名和密码时设置文本框的文本,但是这不会发生,但是如果我显示使用消息识别的字符串 public Form1() { InitializeComponent(); GrammarBuilder g = new Choices("wissam.h44", "jordan_6"); Grammar g1 = new Grammar(g); Grammar g2 = new

我正在构建一个语音控制应用程序,我想在用户说出用户名和密码时设置文本框的文本,但是这不会发生,但是如果我显示使用消息识别的字符串

    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;
    }
public Form1()
{
初始化组件();
GrammarBuilder g=新选择(“wissam.h44”、“jordan_6”);
语法g1=新语法(g);
语法g2=新语法(g);
初始化组件();
this.show+=新的System.EventHandler(显示的是this.Form1_);
识别器1.加载语法(g1);
识别器2.加载语法(g2);
}
显示私有void Form1_(对象发送方,事件参数e)
{
合成器1.Speak(“应用程序已加载”);
合成器1.说话(“请输入您的电子邮件:”);
识别器1.speechrecogned+=
新事件处理程序(识别器1_speechrecogned);
识别器1.setInputOdeFaultAudioDevice();
识别器1.识别();
合成器1.说话(“请输入您的密码:”);
识别器2.speechrecogned+=
新事件处理程序(识别器2_speechrecogned);
Recognizer2.setInputOdeFaultAudioDevice();
识别器2.recognizer();
}
无效识别器1_SpeechRecognized(对象发送者,SpeechRecognizedEventArgs e)
{
字符串eml=e.Result.Text;
Text=eml;
}
void recognizer2_SpeechRecognized(对象发送方,SpeechRecognizedEventArgs r)
{
txtpwd.Text=r.Result.Text;
}

因此,在语音识别事件中,如果我放入MessageBox.Show(eml),电子邮件会正确显示,但文本框的文本不会改变,很可能识别的文本包含新行字符,或者类似的内容

要隔离这种情况,请尝试在*speechrecogned事件中指定具体字符串,如

txtemail.Text = "recognized text";

行吗?如果是,请在调试器中检查字符串中的特定字符。

它不起作用,问题出在文本框中,是否有我可能错误更改的属性,因此现在无法通过编程将文本设置为它?是否更改了正确的文本框?可以在designer中更改文本框文本吗?您只需在设计器中尝试删除表单上的and和textbox,会有帮助吗?