一个键盘接口的刷卡器。
我想实现在文本框里只能通过刷卡等到卡号,不能用键盘录入,怎么实现呢?只读,不行。这个刷卡器是模拟键盘输入的。

解决方案 »

  1.   

    如果是模拟键盘的,恐怕你没法屏蔽掉。
    一屏蔽你的读卡器也没法用了。
    加个bt一点的方法
    onkeydown
    记录一下时间
    直到下次keydown再和这个时间比较
    如果时间 比如大于0.1秒 那么马上清空textbox
    因为读卡器模拟输入很快 要不到0.1秒全部都进去了
    人按的情况就不一样了 要慢很多
    这个方法比较另类哈
      

  2.   

    或者这样写个KeyDown事件
    if (!textBox.Text.StartWith("#"))
    {
        textBox.Text = String.Empty;
    }if (textBox.Text.EndWith("$"))
    {
        textBox.Text = textBox.Text.TrimStart(new char[]{'#'});
        textBox.Text = textBox.Text.TrimEnd(new char[]{'$'});
    }读卡器输出时头上附个# 尾巴附个$
    事件中会在出现$后自动处理成原始的string
    这样就可以了
    客户需要输入的话必须加#
    你也可以把这个作为保留方式测试时使用
      

  3.   

    用第二种方法
    你不用把这个后门告诉用户啊
    你换个键盘上直接按不出来的符号更好 比如 ♣
    再不行就得用低层一点的程序来识别设备特性了
    不值得啊
      

  4.   

    Click the link to solve your problem.Good luck!