C# WInform TextChanged MessageBox.Show冲突的临时解决办法

来源:互联网 发布:React双向数据绑定原理 编辑:程序博客网 时间:2024/06/05 21:14

今天遇到了一个超级奇怪的问题

代码如下:

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";
        }

看到上面的代码您可能会问,这样子肯定会出现两次弹框,前一次是空白的,后一次是收款成功,是的,如果您手工输入任意的三个字母,会得到这样的效果,但是我用了客户的扫码枪输入确只弹出一次“收款成功!”的提示,前面那个空白框不见了!

 

我确实没有找到解决办法,先这么着应付着用吧,毕竟客户都是用扫码枪收款的!希望有高人看到这个问题能给个解释!谢谢谢谢

0 0
原创粉丝点击