You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET扫码后自动插入数据到DataGridView的技术求助

VB.NET 扫码自动插入DataGridView解决方案

方法1:配置条形码扫描器自动发送回车(推荐)

大部分条形码扫描器支持配置扫描完成后自动追加回车键,无需修改代码,现有KeyDown事件即可自动触发插入操作。具体操作参考扫描器说明书,通常扫描特定设置条码就能开启该功能。

方法2:通过代码实现自动检测扫码完成

若无法修改扫描器配置,可通过文本框内容监听+定时器判断实现自动插入:

步骤1:添加定时器控件

在窗体上添加Timer控件(命名为tmrScanDetect),设置Interval为200毫秒(可根据扫描速度调整,100-300ms均可),并将Enabled设为False。

步骤2:编写代码

' 文本框内容变化时重启定时器
Private Sub txtScan_TextChanged(sender As Object, e As EventArgs) Handles txtScan.TextChanged
    tmrScanDetect.Stop()
    tmrScanDetect.Start()
End Sub

' 定时器触发时执行插入逻辑
Private Sub tmrScanDetect_Tick(sender As Object, e As EventArgs) Handles tmrScanDetect.Tick
    tmrScanDetect.Stop()
    Dim scanText As String = txtScan.Text.Trim()
    If Not String.IsNullOrEmpty(scanText) Then
        ' 替换为你原有的DataGridView插入代码
        DataGridView1.Rows.Add(scanText, DateTime.Now)
        txtScan.Clear()
    End If
End Sub

' 保留回车触发逻辑(兼容手动输入)
Private Sub txtScan_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles txtScan.KeyDown
    If e.KeyCode = Keys.Enter Then
        tmrScanDetect.Stop()
        Dim scanText As String = txtScan.Text.Trim()
        If Not String.IsNullOrEmpty(scanText) Then
            DataGridView1.Rows.Add(scanText, DateTime.Now)
            txtScan.Clear()
            e.Handled = True
        End If
    End If
End Sub

原理说明

条形码扫描器输入速度远快于手动输入,通过定时器判断:当文本框内容停止变化超过设定时长,即判定扫码完成,自动执行插入操作。

内容的提问来源于stack exchange,提问作者Fatai Atoyebi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:15:36