如何在WPF

时间:2015-05-11 05:52:43

标签: 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;
            }

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

1 个答案:

答案 0 :(得分: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;
    }
}

TabIndex对所有控件都是通用的,表示当用户按下 Tab 键时控件的聚焦顺序。 SelectedIndex特定于选择器控件(例如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;