如何忽略tabindex并将焦点放在指定的字段上

时间:2015-03-12 13:14:52

标签: c# winforms

不同的GroupBox中有许多winforms控件。在某些情况下,我需要忽略已定义的选项卡索引,并将焦点放在另一个GroupBox中的指定控件上。我已尝试覆盖ProcessCmdKey并调用FocusSelect方法,但仍遵循tabindex顺序。我怎么能来到tabindexes

1 个答案:

答案 0 :(得分:1)

假设您有3个文本框,textBox1,textBox2和textBox3:

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Tab)
            textBox3.Focus();
    }

    protected override bool ProcessTabKey(bool forward)
    {
        return !textBox1.ContainsFocus && base.ProcessTabKey(forward);
    }

这将完全符合您的要求。此逻辑中的hey元素为ProcessTabKey覆盖,link to MSDN

上面的代码使textBox1跳转到textBox3,而不是让Windows自动为你做。