如何设置文本框可见false但仍然写在上面?

时间:2017-07-17 17:31:11

标签: c# winforms

我试图将textbox设置为visible = false以避免用户手动写入,但我仍然需要使用条形码扫描器对其进行写入,所以我需要它在使用扫描仪之前获得重点,什么会是更好的方法吗?

4 个答案:

答案 0 :(得分:0)

从这个问题来看,你想要实现两件事。

  1. 在扫描之前使文本框不可见。
  2. 在条形码扫描后锁定用户编辑文本框。
  3. <强>解决方案

    在扫描之前将文本框可见性属性设置为false,以便它显示在屏幕上。

    在完成扫描后或扫描方法/功能结束时设置事件处理程序,将名为Property的文本框的Disabled更改为true

    希望这有帮助。

答案 1 :(得分:0)

如果隐藏文本框的目的是不允许用户编辑它,那么 您可以将texbox的ReadOnly属性设置为true,然后调用.Focus()方法 在扫描条形码之前。根据我的经验,安装条形码后 阅读器驱动程序,附带CD的软件,你所要做的就是扫描 条形码,它将填充人类可读格式的条形码值, 在可以接受用户输入的应用程序中的任何控件上。我建议用 文本框的只读属性,而不是设置visible = false。

答案 2 :(得分:0)

您最好的选择就是简单地验证输入文本框的内容确实是条形码。当扫描仪发生故障并且用户仍然需要输入条形码时会发生什么?将其限制为仅限数字。

如果这不是一个选项,并且您发现扫描程序无法使用隐藏或禁用的文本框,请设置TabStop = falseMultiline = true,并尝试将文本框大小设置为0x0。或者至少非常小,并使其与背景颜色相同。在这种情况下,您需要一个标签或其他东西,然后显示条形码或产品信息,以便用户知道扫描工作。

另一种可能性是在您的表单上设置KeyPreview = true。然后,无论关注哪个控件,您都可以处理表单KeyPress事件中看起来像条形码的任何内容。如果数字开始进入,捕获它们,如果结果不是条形码,只需将它们转发到聚焦控件。

答案 3 :(得分:0)

只需使用textbox visible = true

将textbox属性大小设置为(0,0)即可