C# 使用IF语句处理Enter键

C# 使用IF语句处理Enter键,c#,asp.net,C#,Asp.net,我正在开发一个简单的ASP.NET C#应用程序,它使用USB条形码扫描仪。我有一个默认为插入的细节视图,底部有一个提交按钮。当页面加载时,表单从URL获取ID并将其输入到第一个字段,然后将光标焦点设置到第二个字段 默认情况下,USB扫描仪输入扫描的号码,然后输入回车键。我想在里面放一个处理器,它基本上是这样说的: 如果光标位于textbox2中并按下Enter键,则将数据保留在文本框中 textbox2并将光标移动到textbox3 如果光标位于textbox3中并按下Enter键,则将数据

我正在开发一个简单的ASP.NET C#应用程序,它使用USB条形码扫描仪。我有一个默认为插入的细节视图,底部有一个提交按钮。当页面加载时,表单从URL获取ID并将其输入到第一个字段,然后将光标焦点设置到第二个字段

默认情况下,USB扫描仪输入扫描的号码,然后输入回车键。我想在里面放一个处理器,它基本上是这样说的:

  • 如果光标位于textbox2中并按下Enter键,则将数据保留在文本框中 textbox2并将光标移动到textbox3
  • 如果光标位于textbox3中并按下Enter键,则将数据保留在文本框中 textbox3并点击提交按钮
其想法是,用户可以扫描表单中每个文本框中填写的一行3或4个条形码,而无需a)每次触发提交按钮,B)在扫描之前不必单击每个字段(如果我禁用了Enter键)

下面是我的代码的开头,它从URL获取ID并填充textbox1,然后将焦点设置为textbox2

protected void DetailsView1_DataBound(object sender, EventArgs e)
    {
        if (DetailsView1.CurrentMode == DetailsViewMode.Insert)
        {
            if (!string.IsNullOrEmpty(Request.QueryString["id"]))
            {
                    TextBox tbox1 = DetailsView1.FindControl("TextBox1") as TextBox;
                    TextBox tbox2 = DetailsView1.FindControl("TextBox2") as TextBox;
                    if (tbox != null)
                    {
                        tbox.Text = Request.QueryString["id"].ToString();
                    }
                    SetFocus(tbox2);
            }
        }
    }

但是我认为enter流已经可以工作了,不是吗? 为什么不只使用JQuery为文本框添加流

$('#TextBox1').keydown(function(e) {
   var code = (e.keyCode ? e.keyCode : e.which); // Crossbrowser fix
   if(code === 13) {          //If Enter keycode
     $('#TextBox2').focus(); // Set focus to second textbox
     e.preventDefault();     // Prevent that the enter does a submit
   }
});

如果输入流不起作用,您可以为表单配置它。

使用
textbox1
完成后,您是否可以检查当前哪个控件具有焦点,然后进行设置?例如,如果
tbox2
有焦点,
SetFocus(tbox3)
?在我的例子中,textbox2后面跟着textbox3。当我扫描条形码时,textbox2中充满了数据,按下回车键,表单被提交。它将同时跳过textbox3。请记住,名称仅为示例,您也可以将此示例用于Textbox2和textbox3。。e.preventDefault应防止执行enter键,并将焦点设置为您提供的命名文本框。为了实现这一点,您需要认为我的示例中的Textbox1是Textbox2,Textbox2是Textbox3。但是名字你可以自己编辑。我理解名字的变化,我想我对代码中的内容感到困惑。做一些谷歌Fu,但如果你知道你的头顶,将非常感谢。在您的aspx页面中,您需要在head标记中添加以下行以下载jQuery。然后在$(document.ready)中发布我上面发布的代码(function(){//jQuery方法转到这里…});Jquery脚本行下方头部的标记。明天如果你有更多的问题,我会回答。再次感谢你的帮助。是否需要从“详细信息”视图调用该函数?或者仅仅将代码放在标题中,它会自动发生吗?仍然没有按预期的那样行动。Visual Studio未捕获代码中的任何错误。