今天遇到了一个超级奇怪的问题
代码如下:
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.Length == 3)
{
textBox1.Text="";
if (ReturnMessage() == "ABCDEF")
{
MessageBox.Show("收款成功!");
}
}
}
private string ReturnMessage()
{
return "ABCDEF";
}
看上去一点儿问题也没有,手工输入任意三个字母测试一下,可以弹出一个收款成功的框,完全正确 没有任何问题,我也知道到现在我说的也全是废话。
然后我用上了客户的扫码枪进行测试,问题来了,就是不弹出收款成功的提示了,反复研究,反复跟踪,代码中的每一名都执行了,就是不弹框,去网上查资料也没有任何人遇到类似问题,真是搞不明白了,然后一个偶然的机会把程序改成了下面状态,结果出现收款成功的弹框了,非常无语中。
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.Length == 3)
{
textBox1.Text="";
if (ReturnMessage() == "ABCDEF")
{
MessageBox.Show("");
MessageBox.Show("收款成功!");
}
}
}
private string ReturnMessage()
{
return "ABCDEF";
}
看到上面的代码您可能会问,这样子肯定会出现两次弹框,前一次是空白的,后一次是收款成功,是的,如果您手工输入任意的三个字母,会得到这样的效果,但是我用了客户的扫码枪输入确只弹出一次“收款成功!”的提示,前面那个空白框不见了!
我确实没有找到解决办法,先这么着应付着用吧,毕竟客户都是用扫码枪收款的!希望有高人看到这个问题能给个解释!谢谢谢谢