现象就是,一个textbox 当是中文输入法的时候,比如搜狗,输入一个字母a,直接按回车,同时会触发textbox的回车事件。导致直接发送消息了。
原因就是中文输入法的回车事件 , 大多数输入法都是在keydown中完成输入过程。所以如果回车提交是在keyup事件中的话就会出现输完字后直接触发回车键提交,从而产生冲突问题。
解决办法就是:
把控件的回车事件改为KeyDown或者PreviewKeyDown中捕获,这时候当keydown事件发生的时候是在输入法上,而不会发生在提交框的发送事件上,进而解决了冲突。
RichTextBox同样适用。