2009-11-11 62 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

相關問題