将光标位置设置为系列中的下一个texbox

时间:2016-08-29 04:57:03

标签: c# visual-studio

Visual Studio 2015,C#,

在一个应用程序中,从一系列文本框中获取信息并在每个文本框上都有一个事件处理程序,如何防止光标在每个文本框条目后返回到第一个文本框?

换句话说,如果我的客户是喜欢使用键盘在数据输入字段中进行选项卡同时在网页上输入数据的人,其中每个文本框上的事件处理程序正在更新某些屏幕上的信息,在刚刚输入的光标之后,我是否让光标返回到下一个文本框或其他控件?

目前,如果我在系列的第二个文本框中输入一个条目,则在自动后退时,光标会返回到第一个文本框。然后用户必须选项卡两次以进入第三个文本框。在那里输入数据后,用户必须选项卡三次以进入第四个文本框。

如果用户不必使用标签或使用鼠标,如何让光标移动到下一个输入框?

(我搜索"设置光标位置"显示图形应用程序的结果。)

2 个答案:

答案 0 :(得分:1)

在网络表单中

<form runat="server" defaultFocus="txtBox1">
        <asp:TextBox runat="server" ID="txtBox1" TabIndex="1"></asp:TextBox> <br />
        <asp:TextBox runat="server" ID="txtBox2" TabIndex="3"></asp:TextBox> <br />
        <asp:CheckBox runat="server" ID="chkBox1" TabIndex="2" /><br />
        <asp:Button UseSubmitBehavior="true" runat="server" TabIndex="4" ID="btn1" text="submit" />
    </form>

查看 TabIndex 属性。如何给出价值,它会以这种方式改变秩序。

对于 ASP .Net MVC ,请按照链接中的answer进行操作。它非常饱满。

对于 Windows窗体应用程序 最简单。选择一个控件并转到属性窗口并设置 tabindex 属性。

这里有一些链接可以引导您找到解决方案。基本上你需要用

搜索
  

&#34;在网络表单/ win form / razor视图中设置标签索引

&#34; (你正在使用哪一个)

TabIndex属性: https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webcontrol.tabindex(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/ms178231.aspx

答案 1 :(得分:0)

完全按照您的要求执行的最直接的方法是将焦点设置为TextChanged事件中每个文本框的后续控件。因此

void TextBox1_OnTextChanged(EventArgs e)
{
    TextBox2.Focus();
}

void TextBox2_OnTextChanged(EventArgs e)
{
    TextBox3.Focus();
}

//etc.

然而,这并不是我所做的一切。我会关闭autopostback并找到一些方法用AJAX替换它。