读书人

关于textbox 的触发事件textBox2_Text

发布时间: 2012-03-30 17:32:09 作者: rapoo

关于textbox 的触发事件textBox2_TextChanged
关于textbox 的触发事件textBox2_TextChanged

我现在textbox从扫描枪获得一串数据(例如:123456),

可是textBox2_TextChanged 把这次串数据(例如:123456),看作是从键盘输入了6个字符(分6次来处理,即textBox2_TextChanged会响应6次)



如何让textBox2_TextChanged 获得数据后,只响应一次

或者有没有其他方法: 使得textbox获得扫描枪数据后,立即触发一个事件


[解决办法]
我印象里扫描枪最后会送出一个回车的,你可以试着在KeyPress事件里捕捉回车,而不是在TextChanged里处理。
如果没有回车,但又能够确定编码的长度,可以根据文本框内容的长度来确定是否完整。
如果连长度都没有办法确定,那就只能靠计时器了。
[解决办法]
e.keychar==13

[解决办法]
e.KEYS==KEYS.Enter
[解决办法]
不一定是Enter。不同的条码扫描设备的出厂设置不同,但是都可以通过用它扫描厂家给你的设置手册来设置后缀。例如你可以设置后缀为"x",或者甚至是两个不可见的ascii码。然后在你的textBox2_TextChanged事件中做判断。例如你可以首先设计一个事件例如

C# code
public event EventHandler ScannerTextChanged;private void textBox2_TextChanged(object sender, EventArgs e){    if(textBox2.EndWith("x")    {        textBox2.Text= textBox2.Text.Substring(0, textBox2.Text.Length-1);        if(ScannerTextChanged!=null)            ScannerTextChanged(this,null);    }} 

读书人网 >C#

热点推荐