C# 在线中断事件

C# 在线中断事件,c#,data-entry,C#,Data Entry,我正在做一个涉及数据输入的项目 该表如下所示:dateTime,enum,text,enum,val1,val2,text,enum 除了val1和val2之外的所有值只输入一次,并为每个val1-val2对添加到表中Val1和val2对于每一行条目都是不同的,它们都是条形码 我希望尽可能提高效率,因此我想知道是否有办法在输入Val1/2时更新DGV(其余VAL当前作为VAR存储在对象[]中)。我使用的是标准的条形码扫描仪,所以我想我可以让它在扫描条形码后输入扫描仪输入的“换行符”上的值,所以我

我正在做一个涉及数据输入的项目

该表如下所示:
dateTime
enum
text
enum
val1
val2
text
enum

除了
val1
val2
之外的所有值只输入一次,并为每个
val1-val2
对添加到表中
Val1
val2
对于每一行条目都是不同的,它们都是条形码

我希望尽可能提高效率,因此我想知道是否有办法在输入Val1/2时更新DGV(其余VAL当前作为VAR存储在
对象[]
中)。我使用的是标准的条形码扫描仪,所以我想我可以让它在扫描条形码后输入扫描仪输入的“换行符”上的值,所以我基本上是在寻找“scanner\u linebreak”事件或其他东西

所以我已经超越了这个问题。。。现在。。。。我需要将所有数据从DGV写入text/excel/xml/whichevtheheheck文件。。。糟糕的结构我知道。。。可能只是重新开始。无论如何,我已经创建了一个空数据集、空数据表和一个空数据行(使用
object[]
填充填充集合的表的行),现在我正在尝试将所有数据输入到空数据表中,以便将其添加到数据集中,以便将数据写入XML。不用说它不起作用了。我尝试使用XmlSerializer,但在将其导入Access和/或IE时出错。回到第1广场。。。是否有方法从DGV填充DS,或者是否有方法仅使用DGV数据编写任何文档。 注意:DGV=
DataGridView

更新

经过一段时间的思考后,我意识到我可以对使用Textchanged事件输入的每个字符进行计数器递增,并从中执行我想要的操作。。。想想看

int counter = 0;
private void textbox1_Textchanged(obj sender etc)
{
    counter++;

    if (counter % 10 == 0)
    {
        //shift focus to other textbox then do same to "save" values
    }
}

根据我的经验,大多数条形码扫描仪都被当作键盘输入。数字后面跟着一个控制字符(通常是CRLF或tab,但您需要使用扫描仪查看它使用的字符)。然后,您可以使用KeyDown或TextChanged事件查看输入,如果是控制字符,则执行更新逻辑。

是的,尝试了TextChanged事件,但在第一个字符时停止输入。我目前正在解决这个问题,首先输入所有数据,只有在收集完所有数据后才将其添加到表中。这样也应该更有效率。不过非常感谢你的回答,我会调查Keydown项目的完成情况…效果很好。如何关闭此问题/线程?做得好!只需单击答案旁边的复选标记即可标记所回答的问题。从常见问题解答中,了解如何结束问题:“当您决定哪个答案对您最有帮助时,单击答案左侧的复选框大纲,将其标记为已接受的答案。这让其他人知道你的问题得到了很好的答案。这样做是有帮助的,因为它向其他人表明你从社区中获得了价值。(如果你不这样做,人们通常会礼貌地要求你回去接受更多问题的答案!)”