2009-11-11 73 views
5

我的应用程序有一个包含大约7个TabItem的TabControl的主窗口。在每个tabItem中放置一个UserControl。在我的应用程序中更改活动选项卡的快捷方式

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

我该如何做到这一点?或...我应该开始搜索什么?

我不能告诉你任何代码,因为问题是我不知道如何启动。

感谢

+0

我以为你不想要允许'Alt-42'。 – SLaks 2009-11-11 21:44:47

+0

+1,因为这显然是一个不平凡的问题。 – 2009-11-11 21:49:35

+0

@Slacks:也许,因为42是对生命的回应,宇宙和一切......我们对未来的键盘一无所知。 :D – Jonathan 2009-11-11 22:00:43

回答

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; 
    } 
} 
+1

非常好。这应该工作。 – 2009-11-11 21:50:20

+2

经过测试和完美运作。我只通过e.KeyValue更改了e.KeyCode。谢谢。 – Jonathan 2009-11-12 20:37:06

相关问题