用于更改应用程序中活动选项卡的快捷方式

时间:2009-11-11 21:39:53

标签: c# winforms user-interface keyboard-shortcuts

我的应用程序有一个主窗口,其中包含一个带有大约7个TabItem的TabControl。在每个tabItem里面我放了一个UserControl。

我希望(无论是活动标签或控件)当用户按下组合键时,用户界面会跳转到特定标签。也就是说,Firefox:alt + 1转到第一个标签的行为相同,alt + n转到N标签。

我怎样才能做到这一点?或者......我该怎么开始搜索?

我无法向您展示任何代码,因为问题是我不知道如何开始。

由于

1 个答案:

答案 0 :(得分:7)

将表单的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;
    }
}