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,会有帮助吗?