如何在WPF中使用左键和右键在tabitem之间导航

Far*_*raz 6 c# wpf

大家好我想在wpf中使用快捷键(使用左右键)和tabcontrol在tabitem之间导航我设置代码 Window_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)

像这样:

switch (e.Key)
            {
                case Key.Right:
                    if (tbControl.TabIndex == 0)
                        tbControl.TabIndex = 1;
                    break;

                case Key.Left:
                    if (tbControl.TabIndex == 0)
                        tbControl.TabIndex = 1;
                    break;
            }
Run Code Online (Sandbox Code Playgroud)

但它没有做任何我希望在tabitem与左右键之间导航谢谢

Nac*_*ota 4

TabControl.TabIndex当你应该使用 时,你正在使用TabControl.SelectedIndex,如下所示:

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    switch (e.Key)
    {
        case Key.Right:
            if (tbControl.SelectedIndex == 0)
                tbControl.SelectedIndex = 1;
            break;
        case Key.Left:
            if (tbControl.SelectedIndex == 1)
                tbControl.SelectedIndex = 0;
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

TabIndex对所有控件都是通用的,表示用户按下按键时控件获得焦点的顺序TabSelectedIndex特定于选择器控件(例如TabControlListBoxComboBox等)并表示所述控件中当前选定项目的索引。

另外,如果您希望它适用于两个以上的选项卡,我会将您的case语句更改为更像这样的内容:

case Key.Right:
    if (tbControl.SelectedIndex < tbControl.Items.Count - 1)
        tbControl.SelectedIndex++;
    break;

case Key.Left:
    if (tbControl.SelectedIndex > 0)
        tbControl.SelectedIndex--;
    break;
Run Code Online (Sandbox Code Playgroud)