Ярлыки для изменения активной вкладки в моем приложении - PullRequest
5 голосов
/ 12 ноября 2009

Мое приложение имеет главное окно, которое содержит TabControl с около 7 TabItems. Внутри каждого tabItem я помещаю UserControl.

Мне бы хотелось, чтобы (независимо от активной вкладки или элемента управления), когда пользователь нажимает комбинацию клавиш, пользовательский интерфейс переходит на конкретную вкладку. то же самое, что и Firefox: alt + 1 переходит на первую вкладку, alt + n - на вкладку N.

Как мне этого добиться? или ... что мне начать искать?

Я не могу показать вам какой-либо код, потому что проблема в том, что я не знаю, с чего начать.

Спасибо

1 Ответ

7 голосов
/ 12 ноября 2009

Установите для свойства KeyPreview формы значение true, переопределите метод OnKeyDown (или OnKeyUp) формы и введите следующий код: (не проверено)

protected override void OnKeyDown(KeyEventArgs e) {
    base.OnKeyDown(e);
    if (e.Alt && e.KeyCode > '0' && e.KeyCode <= '9') {
        tabControl.SelectedIndex = (int)(e.KeyCode - '1');
        e.Handled = true;
    }
}
...