情景说明:
通过串口传输数据到 textbox,并触发textbox的回车事件KeyPress,直接在字符串后面追加"\r"并不能达到预期效果
方案:
步骤一: 在传输的字符串后面追加"\r"
步骤二: 给textbox控件添加TextChanged事件
this.tb_QRCode.TextChanged += new System.EventHandler(this.Tb_QRCode_TextChanged);
this.tb_QRCode.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Tb_QRCode__KeyPress);
步骤三:在TextChanged事件中检测该字符串是否以"\r"结尾,如果是则触发textbox控件的回车事件
private void Tb_QRCode_TextChanged(object sender, EventArgs e)
{
if (System.Text.RegularExpressions.Regex.IsMatch(tb_QRCode.Text, @".*\r$"))
{
KeyPressEventArgs e1 = new KeyPressEventArgs('\r');
Tb_QRCode__KeyPress(this.tb_QRCode,e1);
}
}
步骤四:在回车事件中判断e.KeyChar=='\r' 则执行事件
private void Tb_QRCode__KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
...
}
}