小编M B*_*son的帖子

自动将条形码扫描仪输入发送到文本框VB.Net/Winforms

我已经回顾了几十个选项/解决方案,我无法让它工作.

简单地说,我有一个VB.Net Winform,它有一个文本框,用户可以手动输入文本,或者他们可以使用USB连接的条形码扫描器(模拟键盘)来捕获UPC.

我想要做的是让条形码输入进入文本框,无论哪个控件具有当前焦点.

我已将表单的KeyPreview属性设置为True.

然后我在frmMain_Keypress事件中添加了一些代码,如下所示:

    If Me.txtSearch.Focused = False Then
        txtSearch.Focus()
    End If
Run Code Online (Sandbox Code Playgroud)

非常简单......它有效......有点......

如果txtSearch已经具有焦点,则整个条形码/ UPC将进入文本框.

但是,如果另一个控件具有焦点,则条形码/ UPC的每个字符除了第一个字符都会输入到文本框中.它总是剥离第一个角色.

我在上面的代码中放置了一些调试语句,以查看是否正在读取初始字符并且正在读取它...只是没有发送到文本框.

我已经看到了许多其他非常复杂的条形码扫描解决方案,看起来我真的很接近一些非常简单的东西,但是,如果它剥离了主角,显然它将无法工作.

希望我错过了一些非常明显的东西.

vb.net barcode-scanner winforms

3
推荐指数
1
解决办法
2万
查看次数

正则表达式提取第二个破折号/连字符之前的所有字符

我需要一个 php 正则表达式来提取此类字符串中第二个破折号/连字符之前的所有字符:

EDM-2112-100-2013 ==> EDM-2112 ABCD-2002-100-2014 ==> ABCD-2002

而且,我知道我可以使用各种字符串操作函数来完成此操作(substr 等),但它必须是正则表达式。我们使用正则表达式来定义客户特定的规则,这些规则在数据呈现时进行评估。提供数据时,我们将数据库中的客户特定正则表达式应用到入站数据,然后使用提取的数据。

php regex

2
推荐指数
1
解决办法
4048
查看次数

编写此 linq lambda 表达式并处理空值的正确方法是什么?

虽然这是有效的,但我相当肯定有一种更简洁(和正确?)的方式来编写这个表达式。

    double currentPopulation = 0.0;
    if (detailmetrics.FirstOrDefault(dm => dm.MetricScopeID == 2 && dm.MetricTypeID == 1 &&
                                           dm.Timeframe.Equals("C")) != null)
    {
         currentPopulation = Convert.ToDouble(
             detailmetrics.FirstOrDefault(dm => dm.MetricScopeID == 2 && dm.MetricTypeID == 1 &&
                                          dm.Timeframe.Equals("C")
             ).MetricValue
         );
    }
Run Code Online (Sandbox Code Playgroud)

c# linq lambda

0
推荐指数
1
解决办法
134
查看次数

标签 统计

barcode-scanner ×1

c# ×1

lambda ×1

linq ×1

php ×1

regex ×1

vb.net ×1

winforms ×1