Tabindex在winforms中没有正常工作

时间:2014-08-26 06:43:49

标签: c#

我有两个文本框txtdaystxtnoofPer TabIndex分别为55和56。 但是当我进入它时,它不起作用。

我尝试了KeyDownEvent

 private void txtdays_KeyDown(object sender, KeyEventArgs e)
    {

        if(e.KeyCode==Keys.Enter)
        {
            txtnoofPer.Select();
        }
    }

而不是移动到下一个标签索引,而是转移到其他一些文本框..

7 个答案:

答案 0 :(得分:1)

TabIndex:" 获取或设置一个值,该值确定当用户使用TAB键浏览控件时元素获得焦点的顺序。" 因此,当您按Tab键而不是Enter键时,它将转到下一个文本框。

更新:如果要对该操作使用Enter键,可以使用:

if(Keys.Enter == e.KeyCode)
{
   SendKeys.Send("{TAB}");
   e.Handled = true;//set to false if you need that textbox gets enter key
}

来源:http://www.codeproject.com/Questions/440784/go-to-next-tab-index-by-enter

答案 1 :(得分:1)

要实现此逻辑,要输入命中,请尝试以下代码示例:

private void txtdays_KeyDown(object sender, KeyEventArgs e)
    {

        if(e.KeyCode==Keys.Enter)
        {
            var control = this.Controls
                    .Cast<Control>()
                    .Where(r => r.TabIndex == txtdays.TabIndex + 1).First();
            control.Focus();
        }
    }

答案 2 :(得分:0)

使用焦点。

txtnoofPer.Focus();

答案 3 :(得分:0)

使用此

private void txtdays_KeyDown(object sender, KeyEventArgs e)
{
        if (e.KeyCode == Keys.Enter)
        {
            txtnoofPer.Focus();
            txtnoofPer.Select(0, txtnoofPer.Text.Length);
        }
}

答案 4 :(得分:0)

我用新的

替换文本框解决了这个问题

答案 5 :(得分:0)

如果未触发txtdays_KeyDown事件。使用debug看到它。

然后启用Form Property,称为KeyPreview。将值设置为true。

然后你应该调用这个函数ProcessTabKey(true);

答案 6 :(得分:0)

在设计视图中转到视图 - &gt; Tab Order

按照您要通过它们的顺序点击控件上的数字

问题有时是父控制,例如面板有一个标签索引,干扰你想要实现的目标