我目前有一个带有许多文本框/按钮的 WPF 窗口。目前,当尝试使用 TAB 键在您听到“叮”声的对象之间导航时,焦点不会更改到 TabIndex 中的下一个对象。
这是显示 TabIndex 数字的窗口的样子。
所有对象都将 TabStop 设置为 True。
不是最漂亮的解决方案,但它有效。
表单初始化调用
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”,但焦点会发生变化,这正是我最初想要的。