'丁'在C#/ WPF中的TabStop上

时间:2014-04-09 10:17:47

标签: c# wpf textbox tabstop

我目前有一个带有许多文本框/按钮的WPF窗口。目前,当您尝试使用TAB键在对象之间导航时,您会听到'DING'并且焦点未更改为TabIndex中的下一个对象。

以下是显示TabIndex数字时窗口的样子。

Example Image

所有对象都将TabStop设置为True。

1 个答案:

答案 0 :(得分:0)

不是最漂亮的解决方案,但它有效。

表单初始化调用

this.KeyUp += new System.Windows.Forms.KeyEventHandler(KeyEvent);

然后利用此功能抓取TAB键并处理焦点。

private void KeyEvent(object sender, KeyEventArgs e) //Keyup Event 
    {
        if (e.KeyCode == Keys.Tab)
        {
            ++iFocusCount;
        }
        else if (e.KeyCode == Keys.Tab && e.KeyCode == Keys.Shift)
        {
            --iFocusCount;
        }
        switch (iFocusCount)
        {
            case 0:
                contactBox.Focus();
                break;

            case 1:
                incidentBox.Focus();
                break;
            case 2:
                actionsListBox.Focus();
                break;
            case 3:
                profilesListBox.Focus();
                break;
            case 4:
                currentLatchBox.Focus();
                break;
            case 5:
                daysBox.Focus();
                break;
            case 6:
                calculateDateButton.Focus();
                break;
            case 7:
                copyButton.Focus();
                break;
            case 8:
                notesTextBox.Focus();
                break;
            case 9:
                keycodeBox.Focus();
                break;
            case 10:
                xnaBox.Focus();
                break;
            case 11:
                generateTamButton.Focus();
                break;
            case 12:
                generateNotesButton.Focus();
                break;
            case 13:
                sendEmailButton.Focus();
                break;
            case 14:
                saveButton.Focus();
                break;
            case 15:
                clearLabel.Focus();
                break;
            case 16:
                iFocusCount = 0;
                contactBox.Focus();
                break;
        }

    }

这仍然会产生" DING"但重点改变了我想要的第一个。